如何合并或联接两个数据框,但要保留两者的某些列

时间:2019-09-26 20:34:32

标签: python pandas merge concat

如何合并或联接两个数据框,但同时保留两者的某些列?

我需要将这两个数据帧合并为一个。数据框2具有所有列数据框1仅需要列“ leads”

Dataframe1

campaignid leads 
35119190 391 
31664745 365 
4899110 211 
325772660 195 
64002140 131 
143679198 58 
283494007 45 

Dataframe2

campaignid cost time reach 
35119190 391 391 391 
31664745 365 391 391 
4899110 211 391 391 
325772660 195 391 391 
64002140 131 391 391 
143679198 58 391 391 
283494007 45 391 391

所需结果:

Dataframe2

campaignid cost time reach leads 
35119190 391 391 391 391 
31664745 365 391 391 365 
4899110 211 391 391 211 
325772660 195 391 391 195 
64002140 131 391 391 131 
143679198 58 391 391 58 
283494007 45 391 391 45 

g_spend.to_dict()

{'id': {0: 35119190,
  1: 64002140,
  2: 272351300,
  3: 4899110,},
 'Campaign_ID_name': {0: 'brand',
  1: '-',
  2: '-',
  3: 'science',
,
 'Month': {0: '2019|08',
  1: '2019|08',
  2: '2019|08',
  3: '2019|08',
},
 'Account': {0: 'a',
  1: 'a',
  2: 'b',
  3: 'c',
},
 'campaignid': {0: 35119190,
  1: 64002140,
  2: 272351300,
  3: 4899110,
 },
 'campaign_name': {0: 'All_Brand',
  1: 'All',
  2: 'All_GBHS',
  3: 'All_Science',
},
 'cost': {0: '$59,399.37 ',
  1: '$12,660.37 ',
  2: '$5,631.96 ',
}}

grouped_cw.to_dict()

{'leads': {'1076533154': 40.0,
  '143679198': 58.0,
  '169278078': 13.0,
  '1729099155': 8.0,
}}

2 个答案:

答案 0 :(得分:1)

pd.merge(Dataframe1, Dataframe2, on='campaignid')

答案 1 :(得分:1)

让我们使用df2['leads'] = df2['campaignid'].map(df1.set_index('campaignid')['leads']) df2

   campaignid  cost  time  reach  leads
0    35119190   391   391    391    391
1    31664745   365   391    391    365
2     4899110   211   391    391    211
3   325772660   195   391    391    195
4    64002140   131   391    391    131
5   143679198    58   391    391     58
6   283494007    45   391    391     45

输出:

df2['leads'] = df2['campaignid'].map(grouped_cw)

尝试

requests