合并时的Pandas KeyError

时间:2018-05-05 19:38:42

标签: python python-3.x pandas

我是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)

2 个答案:

答案 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)