我在一个文件夹中有一组CSV文件,我想将它们合并到一个" super-csv"中。有些列可用于所有文件,有些则不可用。
输出中的字段应该为空,如果它在源中不可用。如果列名在多个CSV上相同,则应填充现有列(示例中的名称)
File1.CSV
ID Name ContactNo
53 Vikas 9874563210
File2.CSV
ID Name Designation
23 MyShore Software Engineer
预期输出
ID Name ContactNo Designation
53 Vikas 9874563210
23 MyShore Software Engineer
我已经尝试了其他解决方案,但他们无法处理空字段。例如。 merge csv files with different column order remove duplicates
提前致谢
迈克尔
答案 0 :(得分:1)
在python中,您可以使用允许从csv填充数据帧的pandas模块,合并数据帧,然后将合并的数据帧保存到新的csv文件中。
例如:
import pandas as pd
df1 = pd.DataFrame.from_csv("file1.csv", sep=",")
df2 = pd.DataFrame.from_csv("file2.csv", sep=",")
final_df = df1.reset_index().merge(df2.reset_index(), how="outer").set_index('ID')
final_df.to_csv("result.csv", sep=",")
会产生
ID,Name,ContactNo,Designation
53,Vikas,9874563210.0,
23,MyShore,,Software Engineer
您必须使用sep
参数来适应您的文件格式。