首页 > 解决方案 > 将多个 csv 文件与不同的列合并

问题描述

我需要将多个 csv 文件合并到一个文件中。挑战是:- 所有这些 csv 文件的列数都不同。所以我在想是否有任何方法可以从这些文件中读取所有列名,然后在组合这些 csv 文件时,我可以从传入文件中读取相应的列名,将其与大组合文件中的列名匹配,然后相应地保存该值。如果未找到列名,则将 N/A 或 null 存储在组合文件中。

它看起来可行还是其他更好的方法?

问候, 阿伦

标签: pythonpandasdataframecsv

解决方案


我建议将 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

推荐阅读