【问题标题】:pandas conditional drop rows in for loop熊猫有条件地在for循环中删除行
【发布时间】:2018-10-30 17:14:00
【问题描述】:

我的 Pandas DataFrame 有 17543 行。我想删除一行,前提是每列都包含“nan”。我按照链接drop rows in for loop尝试了说明 但没有帮助。以下是我的代码

NullRows=0
for i in range(len(SetMerge.index)):
    if(SetMerge.iloc[i].isnull().all()):
        df=SetMerge.drop(SetMerge.index[i])
        NullRows +=1

print("total null rows : ", NullRows)

我只在 df 中删除了一行,有 17542 行,而 NullRows 输出为 30。

【问题讨论】:

  • 为什么不使用 dataframe.dropna(how='all') ?
  • 换句话说,你根本不应该使用循环
  • 提高可读性
  • 安娜在这里,不要为此使用 for 循环。

标签: python pandas for-loop


【解决方案1】:

drop 不会改变您的SetMerge。因此,您需要在drop 之后重新分配SetMerge,或者使用其他函数。 它是通过您在此处发布并检查的链接写在答案中的。为突变指定 inplace=True 选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多