簡體   English   中英

熊貓分組並跨多列計數

[英]Pandas groupby and count across multiple columns

我有按 ID、Year 排序的數據,然后是一系列事件標志,指示在那一年該 ID 是否發生了某件事:

ID X z
1 2015年 0 1 0
1 2016年 1 1 0
1 2017年 0 1 1
2 2015年 1 0 1
2 2016年 1 1 0
2 2017年 0 1 1

我想按 ID 和 Year 分組,並對每個“事件”列應用累積計數,這樣我就會得到如下內容

ID x_total y_total z_total
1 2015年 0 1 0
1 2016年 1 2 0
1 2017年 1 3 1
2 2015年 1 0 1
2 2016年 2 1 1
2 2017年 2 2 2

我已經使用cumsumcumcount查看了各種選項,但我似乎無法弄清楚這一點。

您可以使用.groupby() + .cumsum()來獲取每個“事件”列的累積計數。 然后通過.add_suffix()_total作為后綴添加到列名,然后加入前兩列:

df[['ID', 'Year']].join(df.groupby('ID')[['x', 'y', 'z']].cumsum().add_suffix('_total'))

結果:

   ID  Year  x_total  y_total  z_total
0   1  2015        0        1        0
1   1  2016        1        2        0
2   1  2017        1        3        1
3   2  2015        1        0        1
4   2  2016        2        1        1
5   2  2017        2        2        2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM