![](/img/trans.png)
[英]Pandas DF - Group by + Sum and then Draw Lines for each Category Totals
[英]pandas calculate the counts and sum group by each category
我有一個數據框:
category num1 num2 mark
1 A 2 2 0
2 B 3 3 1
3 C 4 2 2
4 C 3 5 2
5 D 6 8 0
6 E 7 5 1
7 D 8 1 1
我想通過標記(作為列)計算每個類別組的計數數,例如:
the counts:
catgory mark_0 mark_1 mark_2
A 1 0 0
B 0 1 0
C 0 0 2
D 0 2 0
E 0 1 0
另一個是通過標記(作為列)計算每個類別組的數字總和,例如:
the sum:
category numsum_0 numsum_1 numsum_2
A 2 0 0
B 0 3 0
C 0 0 7
D 0 14 0
E 0 7 0
我的方法是:
df_z[df_z['mark']==0]['category'].value_counts()
df_z[df_z['mark']==0].groupby(['category'], sort=False).sum()
但是效率低下
>>> pd.pivot_table(df,index=['category'],columns=['mark'],aggfunc=len).fillna(0)
num
mark 0 1 2
category
A 1.0 0.0 0.0
B 0.0 1.0 0.0
C 0.0 0.0 2.0
D 1.0 1.0 0.0
E 0.0 1.0 0.0
>>> pd.pivot_table(df,index=['category'],columns=['mark'],aggfunc=np.sum).fillna(0)
num
mark 0 1 2
category
A 2.0 0.0 0.0
B 0.0 3.0 0.0
C 0.0 0.0 7.0
D 6.0 8.0 0.0
E 0.0 7.0 0.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.