【问题标题】:How to write a loop that drops NaN values across multiple pandas dataframes如何编写一个循环,在多个熊猫数据帧中删除 NaN 值
【发布时间】:2020-09-01 22:23:39
【问题描述】:

我在 python 中编写了以下代码,以在单独的 dfs 中将多个 csv 文件读入 pandas:

dfs = []
for f in filenames:
    df = pd.read_csv(f, encoding= 'unicode_escape')
    dfs.append(df)

效果很好,我可以索引我创建的 dfs 对象以访问不同的数据帧,如下所示:

dfs[0], dfs[1], etc

但是,数据帧中包含 NaN 值,我正在尝试编写第二个循环来遍历并删除它们。我确信这会起作用,但是它没有:

for df in dfs:
  df.dropna()

单元运行了,但是当我调用 dfs[0] 时,NaN 仍然存在。这可能是因为数据框在列表中吗?注意,我想删除带有 Nans 的行,而不是列。

如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

    标签: python pandas dataframe for-loop nan


    【解决方案1】:

    你需要重新分配它

    for i in range(len(dfs)):
        dfs[i]=dfs[i].dropna()
    

    或加inplace

    for df in dfs:
      df.dropna(inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-22
      • 2019-07-29
      • 2019-10-10
      • 1970-01-01
      • 2022-01-25
      • 2013-07-31
      • 2021-04-26
      • 2018-04-23
      相关资源
      最近更新 更多