我有一个包含 csv
文件的目录:
frames/df1.csv
df2.csv
框架的结构如下:
df1.csv
artist track plays
1 Pearl Jam Jeremy 456
2 The Rolling Stones Heart of Stone 546
df2.csv
artist track likes
3 Pearl Jam Jeremy 5673
9 The Rolling Stones Heart of Stone 3456
我想将所有框架合并为一个,最终为:
artist track plays likes
0 Pearl Jam Jeremy 456 5673
1 The Rolling Stones Heart of Stone 546 3456
我已经尝试过:
path = 'frames'
all_files = glob.glob(path + "/*.csv")
list_ = []
for file_ in all_files:
df = pd.read_csv(file_,index_col=None, header=0)
list_.append(df)
frame = pd.concat(list_)
无济于事。解决这个问题的最佳方法是什么?
最佳答案
我只是简单地使用您的代码创建 DataFrame 列表
path = 'frames'
all_files = glob.glob(path + "/*.csv")
l= []
for file_ in all_files:
df = pd.read_csv(file_,index_col=None, header=0)
l.append(df)
然后使用functools.reduce
,将列表数据框合并为一个
import functools
l= [df1, df2, df3....]
merged_df = functools.reduce(lambda left,right: pd.merge(left,right,on=['artist','track']), l)
关于Python pandas - 将目录中的csv文件合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751699/