繁体   English   中英

Python Pandas根据列的数据类型删除行

[英]Python Pandas drop rows based on a column's data type

我想将不是浮点型的行放在一列中,该怎么做? 提前致谢。

         a     b    c 
    1   1.2   2.2   3.3
    2   rvtg  1.2   2.2
    3   2.2   2.2   1.6 

由于单元格“ a2”是rvtg,而不是浮点数,所以我想删除第2行,我尝试了一些代码,但是给出了错误消息,有人可以帮忙吗? 谢谢。

应用pd.to_numeric并删除NaN。 请注意,这是一个更通用的解决方案。 如果知道哪个列应具有非数字值,则可以避免使用apply。

df.apply(pd.to_numeric, errors = 'coerce').dropna()

    a   b   c
1   1.2 2.2 3.3
3   2.2 2.2 1.6

编辑:由于只有列a可能包含非数字值,所以更有效的解决方案是将列a转换为数字,而不是将函数应用于所有列。 以下将返回相同的输出。

df['a'] = pd.to_numeric(df['a'], errors = 'coerce')
df.dropna(inplace = True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM