python - 如何编写一个循环,在多个熊猫数据帧中删除 NaN 值
问题描述
我在 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 删除行,而不是列。
我将不胜感激任何帮助。谢谢!
解决方案
你需要重新分配它
for i in range(len(dfs)):
dfs[i]=dfs[i].dropna()
或添加inplace
for df in dfs:
df.dropna(inplace=True)
推荐阅读
- youtube - Google Play 促销视频未显示在移动设备中,但可通过笔记本电脑浏览器查看
- sql-server - SQL Server - 将用 / 分隔的单个可变长度列拆分为多个列
- javascript - c#从角度发送3个参数到c#mvc,我在服务器端得到null
- python-3.x - 当您不知道所需的最大大小时,添加不同大小的 numpy 数组?
- c# - WPF MVVM:如何避免创建 ViewModel 的多个实例?
- anaconda - Jupyter Notebook快捷方式未出现在Anaconda下的Windows 10开始菜单中
- java - Java GUI 填充空白
- javascript - 带表头的乘法表
- c# - Loading screen on page before data are loaded
- php - 将一个数组合并到多个数组