繁体   English   中英

如何编写一个循环,在多个 pandas 数据帧中删除 NaN 值

[英]How to write a loop that drops NaN values across multiple pandas dataframes

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

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

它工作得很好,我可以索引我创建的 dfs object 来访问不同的数据帧,如下所示:

dfs[0], dfs[1], etc

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

for df in dfs:
  df.dropna()

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

我将不胜感激任何帮助。 谢谢!

您需要将其分配回来

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

或者inplace添加

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM