通过多个文件的列名连接pandas

时间:2017-05-15 20:05:11

标签: python pandas dataframe merge glob

我想在差异列名称上合并2个数据帧。它使用

处理单个文件
df1 = pd.read_csv('df1.csv', header = 0)
df2 = pd.read_csv('df2.csv', header = 0)

All = pd.merge(df1, df2, how = 'left', left_on = 'Name1', right_on = 'Name2')
All = All.drop('Name2', 1)
All.to_csv('all.csv', sep=',')

但是对于glob中的多个文件(Descriptors /中的100个csv文件)

df1 = pd.read_csv('df1.csv', header = 0)

for f in glob.glob('Descriptors/*.csv'):
     df2 = pd.read_csv(f)
     All = pd.merge(df1, df2, how = 'left', left_on = 'Name1', right_on = 'Name2')
     All = All.drop('Name2', 1)
     All.to_csv(f + 'all.csv', sep=',')

这只能成功1次循环并获得错误

KeyError: 'Name2'

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

是的,代码是正确的。但是ERROR来自log.csv文件,每次我尝试运行时都会保存。所以每次新的运行glop都会得到导致错误的log.csv。