将类型str(带有数字和单词)列转换为intpandas
我有一个包含数字和单词类型 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
0 2.0
1 3.0
3 199.0
dtype: float64
回答
正如您提到的,您有一个专栏(一个系列),所以假设它被称为s:
s = pd.Series(['2', '3', 'Amy', '199', 'Happy'])
然后赋值后,就做pd.to_numeric,把errors='coerce'. 然后,删除NaNs dropna:
print(pd.to_numeric(s, errors='coerce').dropna())
然后上面的代码会输出: