【发布时间】:2019-09-26 20:34:32
【问题描述】:
如何合并或连接两个数据框,但保留两者的某些列?
我需要将这两个数据框合并为一个。数据框 2 包含所有列数据框 1 只需要列“leads”
数据框1
campaignid leads
35119190 391
31664745 365
4899110 211
325772660 195
64002140 131
143679198 58
283494007 45
数据帧2
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
想要的结果:
数据框2
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,
}}
【问题讨论】:
-
不就是
Dataframe1.merge(Dataframe2, on='campaignid')吗? -
@QuangHoang 不幸的是,我以前试过。它给出错误:“您正在尝试在 int64 和对象列上合并。如果您希望继续,您应该使用 pd.concat ”
-
表示这两个campaignid 类型不同。将它们都转换为字符串?
-
df1.to_dict() 和 df2.to_dict() 将它们的输出添加到这个问题中。
-
啊... grouped_cw id 是一个系列,索引中有campaignids!
标签: python pandas merge concat