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

标签 python pandas

我想在一列中删除非浮点类型的行,该怎么做?提前致谢。

         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,而不是 float ,所以我想删除第 2 行,我尝试了几个代码但它给出了错误信息,有人可以帮忙吗?谢谢。

最佳答案

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

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)

关于Python Pandas 根据列的数据类型删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54938727/

相关文章:

python - Django redirect_authenticated_user : True not working

python - 如何将for循环向下推到numpy

python - 更新表语句在 pandasql 中不起作用

python - 在数据框中查找每月重复值( Pandas )

python - 按名称获取DataFrame索引

python - 如何在 DataFrame 的字符串列中应用正则表达式替换?

python - 使用Python将zip文件从Google云存储上传到SFTP服务器,而不加载到内存中

python - Apache Nifi:我想将数据CSV导入Elasticsearch而不使用apache nifi将其流式传输到其他处理器

python - matplotlib 多列条形图,x 轴上有日期

pandas - 如何解决此归因错误AttributeError : 'DataFrame' object has no attribute 'as_matrix' (using Python 3.8)