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

5

我想在一个列中,删除那些不是浮点类型的行,怎么做呢?先谢谢了。

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

由于单元格"a2"不是浮点数,因此我想删除第二行。我尝试了几个代码,但出现错误消息,请问有人能帮忙吗?谢谢。
1个回答

11

使用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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接