首页 > 解决方案 > 如何在 python 中使用 pandas 对多个 DataFrame 执行外部合并

问题描述

我有 125 个列名相同的 csv 文件。我想合并所有这些(on=column)。我尝试了以下代码,但它不起作用(似乎它在无限循环中运行)。

filelist = glob.glob('*.csv')
dflist = []
for filename in filelist:
df = pd.read_csv(filename)
dflist.append(df)
df_2 = reduce(lambda  left,right: pd.merge(left,right,on=['gene_id'],how='outer'), dflist)

我不能像 df_new = pd.concat([df1, df2, df3, df4], axis=1)) 那样使用 pd.concat,因为 csv 文件的行长不同。

还有其他方法可以对多个文件执行 pd.merge 吗?

提前致谢!!

标签: pythonpandas

解决方案


试试这个代码。

filelist = glob.glob('*.csv')
merged_df = pd.read_csv(filelist[0])

for filename in filelist:
    df = pd.read_csv(filename)
    merged_df = pd.merge(merged_df, df, on = ['gene_id'], how = 'outer')

推荐阅读