gpt4 book ai didi

Python - groupby 总和映射到另一个数据框

转载 作者:行者123 更新时间:2023-11-28 20:13:28 26 4
gpt4 key购买 nike

我的数据框 A:

id   groupA    groupB    groupC    groupD   groupE    ...
001 0 0 0 0 0
002 0 0 0 0 0
003 0 0 0 0 0
...

数据框 B:

id     value     count
001 groupA 2
002 groupB 1
001 groupB 3
001 groupC 1
003 groupC 2
002 groupA 1


dfB.groupby(['id', 'value'])['count'].sum()

通过运行这个 groupby 我得到:

id  value 
1 groupA 2
groupB 3
groupC 1
2 groupA 1
groupB 1
3 groupC 2
Name: count, dtype: int64

我试图将此结果转换为数据框并将其映射回数据框 A,但没有成功。

我理想的数据框 Aoutput 是:

id   groupA    groupB    groupC    groupD   groupE    ...
001 2 3 1 0 0
002 1 1 0 0 0
003 0 0 2 0 0
...

最佳答案

您可以旋转 df2 并合并两个数据帧,

df2.pivot_table(index = 'id', columns = 'value', values = 'count', aggfunc='sum').reset_index()\
.merge(df1, how = 'left').fillna(0).astype(int)


id groupA groupB groupC groupD groupE
0 1 2 3 1 0 0
1 2 1 1 0 0 0
2 3 0 0 2 0 0

你也可以用 groupby 做同样的事情,

df2.groupby(['id', 'value'])['count'].sum().unstack().reset_index()\
.merge(df1, how = 'left').fillna(0).astype(int)

关于Python - groupby 总和映射到另一个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54064802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com