我有一个数据帧("MUNg"(,如下所示:
MUN_id Col1
1-2 a
3 b
4-5-6 c
...
另一个数据帧("ppc"(是这样的:
id population
0 1 20
1 2 25
2 3 4
3 4 45
4 5 100
5 6 50
...
我需要在";MUNg";其包含通过将对应于"id"的总体求和而获得的总总体;pcc";,存在于MUN_id 中
预期结果:
MUN_id Col1 total_population
1-2 a 45
3 b 4
4-5-6 c 195
...
我没有写我是如何做到这一点的,因为我是python的新手,我不知道如何做到
MUNg['total_population']=?
非常感谢!
您可以将字符串split
和explode
放入新行,map
为总体数据,GroupBy.agg
为求和:
MUNg['total_population'] = (MUNg['MUN_id']
.str.split('-')
.explode()
.astype(int) # required if "id" in "ppc" is an integer, comment if string
.map(ppc.set_index('id')['population'])
.groupby(level=0).sum()
)
输出:
MUN_id Col1 total_population
0 1-2 a 45
1 3 b 4
2 4-5-6 c 195