2017-07-24 87 views
2

我一直希望有人能夠幫助我解決一些相對簡單的問題,我一直在努力。最近,我用groupby在我df總結了不同的羣體,你可以看到如下:格式化熊貓groupby()進行合併

     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的每個觀察結果。

+0

'df.groupby([ 'MSA.name', 'ifr.industry'])」員工']。sum()。reset_index()' – Wen

+0

@Wen絕對令人驚歎,非常感謝! –

+1

我添加另一種方法,可以保存'合併'步驟 – Wen

回答

3

試試這個第一df.groupby(['MSA.name', 'ifr.industry'])['employees'].sum().reset_index()

也,你不需要merge這裏,使用transform

df['sum']=df.groupby(['MSA.name', 'ifr.industry'])['employees'].transform(sum) 
+0

非常感謝你,這已經非常翔實! –

+0

@丹尼,很高興幫助〜祝你有美好的一天 – Wen