我有一个数据框,其中 A 列填充了数字 1-9。我只想过滤数字 2 和 3。 isin 不适用于 float dtypes。有替代方案吗?
类似于:
df=df.loc[df['ColA'].isin([2,3])]
我认为如果需要测试2.0, 3.0, 2, 3
您的解决方案是否运行良好。
df = pd.DataFrame({'ColA': [2.0, 6, -1, 3.0]})
print (df.loc[df['ColA'].isin([2,3])])
ColA
0 2.0
3 3.0
如果需要将浮点数转换为整数:
df=df.loc[df['ColA'].astype(int).isin([2,3])]
或者您可以尝试pd.to_numeric
转换float
为int
:
df = df.loc[pd.to_numeric(df['ColA'], downcast=int).isin([2, 3])]