在Pandas中加入dfs时的键错误

问题描述 投票:1回答:1

我有一个包含以下列的数据框:

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中的一列,不应该发生吗?这是怎么回事?

python pandas
1个回答
0
投票

正如@root指出的那样,pd.DataFrame.join加入了索引索引或索引列,但不是列列。

要加入列,请使用pd.DataFrame.merge

df1 = df1.merge(df2, on='#CNAEpai', how='left', rsuffix='_bbb')
© www.soinside.com 2019 - 2024. All rights reserved.