格式化 Pandas groupby() 以进行合并
Formatting Pandas groupby() for merge
我希望有人能帮助我做一些我一直在尝试做的相对简单的事情。最近,我使用 groupby
对 df
中的不同组求和,如下所示:
MSA.name ifr.industry
0 Abilene, TX Metro Area 90
1 Abilene, TX Metro Area P
2 Abilene, TX Metro Area 90
3 Abilene, TX Metro Area F
4 Abilene, TX Metro Area 90
5 Abilene, TX Metro Area 90
6 Abilene, TX Metro Area 90
7 Abilene, TX Metro Area 90
然后我对 df.groupby(['MSA.name', 'ifr.industry'])['employees'].sum()
行业的员工求和
MSA.name ifr.industry employees
Abilene, TX Metro Area 10-12 720
13-15 70
16 87
17-18 54
20-21 77
22 403
23 324
24 383
25 701
28 310
29 198
30 233
但是,我想将它合并回原来的 df
,但我不知道如何轻松地做到这一点。我想知道在我执行 groupby()
.
之后,是否有一种方法可以让 groupby()
列出每次观察的 MSA.name
先试试这个df.groupby(['MSA.name', 'ifr.industry'])['employees'].sum().reset_index()
另外,这里不需要merge
,使用transform
df['sum']=df.groupby(['MSA.name', 'ifr.industry'])['employees'].transform(sum)
我希望有人能帮助我做一些我一直在尝试做的相对简单的事情。最近,我使用 groupby
对 df
中的不同组求和,如下所示:
MSA.name ifr.industry
0 Abilene, TX Metro Area 90
1 Abilene, TX Metro Area P
2 Abilene, TX Metro Area 90
3 Abilene, TX Metro Area F
4 Abilene, TX Metro Area 90
5 Abilene, TX Metro Area 90
6 Abilene, TX Metro Area 90
7 Abilene, TX Metro Area 90
然后我对 df.groupby(['MSA.name', 'ifr.industry'])['employees'].sum()
MSA.name ifr.industry employees
Abilene, TX Metro Area 10-12 720
13-15 70
16 87
17-18 54
20-21 77
22 403
23 324
24 383
25 701
28 310
29 198
30 233
但是,我想将它合并回原来的 df
,但我不知道如何轻松地做到这一点。我想知道在我执行 groupby()
.
groupby()
列出每次观察的 MSA.name
先试试这个df.groupby(['MSA.name', 'ifr.industry'])['employees'].sum().reset_index()
另外,这里不需要merge
,使用transform
df['sum']=df.groupby(['MSA.name', 'ifr.industry'])['employees'].transform(sum)