python - 将多个 csv 文件与不同的列合并
问题描述
我需要将多个 csv 文件合并到一个文件中。挑战是:- 所有这些 csv 文件的列数都不同。所以我在想是否有任何方法可以从这些文件中读取所有列名,然后在组合这些 csv 文件时,我可以从传入文件中读取相应的列名,将其与大组合文件中的列名匹配,然后相应地保存该值。如果未找到列名,则将 N/A 或 null 存储在组合文件中。
它看起来可行还是其他更好的方法?
问候, 阿伦
解决方案
我建议将 CSV 文件读入 pandas DataFrames。然后你可以使用concat
. 假设您有两个 pandas 数据框,df1 和 df2。此代码将组合它们并在不适用时留下 NaN:
import pandas as pd
df1 = pd.DataFrame({'column1': [1,2],
'column2': [3,4],
})
df2 = pd.DataFrame({'column1': [5,6],
'column3': [7,8],
})
pd.concat([df1,df2],ignore_index=True)
输出是这样的:
column1 column2 column3
0 1 3.0 NaN
1 2 4.0 NaN
2 5 NaN 7.0
3 6 NaN 8.0
推荐阅读
- java - 这两个代码片段有何不同?
- javascript - 有没有办法在地理服务器中使用时间滑块提供 XYZ 格式的图块?
- java - 错误:使用 Eclipse 运行 COMSOL 模型时出现 NoClassDefFoundError
- c# - 动态 EF Linq 使用反射、成员表达式或任何东西加入导航属性
- vba - 如何在 VBA 中设置依赖于相邻单元格值的下拉列表?
- amazon-web-services - 如何在 AWS dynamodb 中存储和检索一对多关系数据
- c# - 从同一 AppDomain 中的不同程序集访问实例化对象
- c# - 如何使 Win2D BlendEffect 应用于当前绘图表面(背景)?
- python - Python。如何将 DataFrame 拆分为包含 2 个组件的列表?
- docker - 只有在构建成功且没有错误的情况下,如何将 Docker 容器推送到 Docker Hub?