我有一个包含以下列的数据帧:
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'
既然两个 dfs 中的列不应该发生 #CNAEpai 对吗?这是怎么回事?
如@root所示,pd.DataFrame.join
联接索引上索引或列上索引,但不是列上索引。
要联接列,请使用pd.DataFrame.merge
:
df1 = df1.merge(df2, on='#CNAEpai', how='left', rsuffix='_bbb')