我是Pandas的新手,我正在尝试在两个数据帧之间进行左连接。我得到了一个KeyError。有人能发现我的错误吗?我想这可能是我想念的一件容易事。谢谢!
import pandas as pd
import xlrd
remediation_file = pd.read_excel('C:\\Users\garyd\\Desktop\\remediation-workbook.xlsx')
exception_file = pd.read_excel('C:\\Users\garyd\\Desktop\\exception-finished-file.xlsx')
remediation_file['Concat ID-Resource'] = remediation_file['ID'] + remediation_file['Resource']
exception_file['Concat ID-Resource'] = exception_file['ID'] + exception_file['Resource']
indexed_remediation_file = remediation_file.set_index(['Concat ID-Resource'])
indexed_exception_file = exception_file.set_index(['Concat ID-Resource'])
# print(indexed_remediation_file)
# print(indexed_exception_file)
join_file = pd.merge(indexed_remediation_file, indexed_exception_file, on = 'Concat ID-Resource', how='left')
# print(join_file)
答案 0 :(得分:2)
这些行
indexed_remediation_file = remediation_file.set_index(['Concat ID-Resource'])
indexed_exception_file = exception_file.set_index(['Concat ID-Resource'])
使关节列成为每个DataFrame的索引。因此,当您想要合并时,而不是使用
on='Concat ID-Resource'
使用
left_index=True,
right_index=True
答案 1 :(得分:2)
如果要按索引合并两个数据框,请使用df1.join(df2)
如果您想按索引合并3 + DF,请使用:pd.concat([df1, df2, df3], axis=1)