如何在“pd.notnull”无法起作用时从DataFrame中删除空行?Python
如何在“pd.notnull”无法起作用时从DataFrame中删除空行?Python
我有一个包含两列\'A\'和\'B\'的DataFrame。我的目标是删除\'B\'为空的行。其他人建议使用df[pd.notnull(df[\'B\'])]
。例如在这里:Python:如何删除某列为空/NaN的行?然而,不知何故,在这种情况下这种方法不起作用。为什么不起作用,怎么解决呢?\n这是期望的结果:\n
A B 0 Lorema Ipsuma 1 Corpusa Dominusa 2 Corpusc Dominusc 3 Corpuse Dominuse
问题的原因是数据框中存在空行,而使用pd.notnull函数无法删除这些空行。解决方法是先使用strip函数去除空格、制表符和换行符等字符,然后再删除空行。
具体的解决方法是使用以下代码:
df[df.B.str.strip().ne("") & df.B.notnull()]
这个方法可以覆盖所有情况,包括存在空格、制表符或换行符的单元格。
然后,问题提出者询问是否可以将空行填充为其他值(例如'0')然后再删除。回答者询问数据框是如何创建的,是否是从CSV文件中导入的。问题提出者回答说自己的函数较为复杂,但可以返回一个字符串或空格''。然后将结果写入CSV文件。
根据jpps的建议,回答者建议使用
df['B'].iloc[2] == ''
来查看第2行第B列的单元格的值。结果显示为False。
回答者建议继续进行类似的操作,直到找到该单元格中的具体内容为止,即直到某个操作返回True为止。