我有一个包含以下列的数据框:
df1:
Index(['cnpj', '#CNAE', 'Estado', 'Capital_Social', '#CNAEpai', '#CNAEvo',
'#CNAEbisavo', 'Porte'],
dtype='object')
我有另外一个包含这些列的数据框:
df2:
Index(['#CNAEpai', 'ROA_t12_Peers_CNAEpai', 'MgBruta_t12_Peers_CNAEpai',
'MgEBITDA_t12_Peers_CNAEpai', 'LiqCorrente_t12_Peers_CNAEpai',
'Crescimento_t12_Peers_CNAEpai', 'MgLucro_t12_Peers_CNAEpai',
'Custo/Receita_t12_Peers_CNAEpai', 'Passivo/EBITDA_t12_Peers_CNAEpai',
'ROE_t12_Peers_CNAEpai', 'RFinanceiro/Receita_t12_Peers_CNAEpai',
'cnpj_t12_Peers_CNAEpai', 'LiqGeral_t12_Peers_CNAEpai'],
dtype='object')
我正在尝试加入他们,使用这一行:
df1=df1.join(df2,on=['#CNAEpai'],how='left',rsuffix='_bbb')
但是我收到了这个错误:
KeyError: '#CNAEpai'
由于#CNAEpai是两个dfs中的一列,不应该发生吗? 发生了什么事?
答案 0 :(得分:0)
正如@root指出的那样,pd.DataFrame.join
加入了索引索引或索引列,但不是列列。
要加入列,请使用pd.DataFrame.merge
:
df1 = df1.merge(df2, on='#CNAEpai', how='left', rsuffix='_bbb')