首页 > 解决方案 > 将类型 str(带有数字和单词)列转换为 int pandas

问题描述

我有一列包含数字和单词的 str 类型:

前任。

['2','3','Amy','199','Happy']

我想将所有“str number”转换为 int 并删除(带有)“str words”的行。

所以我的预期输出将是如下列表:

[2, 3, 199]

由于我有一个 pandas 数据框,并且这应该是其中的一列,因此如果它可以Series如下所示会更好:

0      2.0
1      3.0
3    199.0
dtype: float64

标签: pythonpandas

解决方案


正如您提到的,您有一个专栏(一个系列),所以假设它被称为s

s = pd.Series(['2', '3', 'Amy', '199', 'Happy'])

然后在分配后,只需做pd.to_numeric并放入 的参数errors='coerce'。然后,删除NaNs dropna

print(pd.to_numeric(s, errors='coerce').dropna())

那么上面的代码就会输出:

0      2.0
1      3.0
3    199.0
dtype: float64

推荐阅读