【发布时间】:2020-04-04 07:59:30
【问题描述】:
我有 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 吗?
提前致谢!!
【问题讨论】:
-
如果它们有相同的列名,那么 pd.concat 就是你的 go 方法。文件的行长不同是什么意思?
-
我想按列合并所有 csv 文件,即axis=1。但是当我运行 pd.concat 时,它给出了一个错误,说数组长度不同。
-
它不会加起来......如果它们都有相同的列,你会想要并排合并它们(这就是 axis=1 的含义)。你介意分享说两个csv的前五行并显示你想要的结果在这两个合并后会是什么?基于此,我们可能会找出问题所在