python对取自另一个数据帧的列中的值求和



我有一个数据帧("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']=?

非常感谢!

您可以将字符串splitexplode放入新行,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

最新更新