如何在“pd.notnull”无法起作用时从DataFrame中删除空行?Python

7 浏览
0 Comments

如何在“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

0
0 Comments

问题的原因是数据框中存在空行,而使用pd.notnull函数无法删除这些空行。解决方法是先使用strip函数去除空格、制表符和换行符等字符,然后再删除空行。

具体的解决方法是使用以下代码:

df[df.B.str.strip().ne("") & df.B.notnull()]

这个方法可以覆盖所有情况,包括存在空格、制表符或换行符的单元格。

然后,问题提出者询问是否可以将空行填充为其他值(例如'0')然后再删除。回答者询问数据框是如何创建的,是否是从CSV文件中导入的。问题提出者回答说自己的函数较为复杂,但可以返回一个字符串或空格''。然后将结果写入CSV文件。

根据jpps的建议,回答者建议使用

df['B'].iloc[2] == ''

来查看第2行第B列的单元格的值。结果显示为False。

回答者建议继续进行类似的操作,直到找到该单元格中的具体内容为止,即直到某个操作返回True为止。

0