我有一個看起來像這樣的資料集:
Categories | Clicks
1 | 1
1 | 3
1 | 2
2 | 2
2 | 1
2 | 1
2 | 2
3 | 1
3 | 2
3 | 3
4 | 2
4 | 1
為了制作一些條形圖,我希望它看起來像這樣:
Categories | Clicks_count | Clicks_prob
1 | 1 | 33%
2 | 2 | 50%
3 | 1 | 33%
4 | 1 | 50%
所以基本上:分組Categories并計算Clicks_count每個類別Clicks取值為 1 的次數,以及取值為 1Clicks_prob的概率Clicks(所以它的點擊次數== 1/類別 i 觀察計數)
我怎么能這樣做?我試過,得到第二列:
df.groupby("Categories")["Clicks"].count().reset_index()
但結果是:
Categories | Clicks
1 | 3
2 | 4
3 | 3
4 | 2
uj5u.com熱心網友回復:
嘗試sum并mean在條件下Clicks==1。由于您正在與組一起作業,請將它們放在 groupby 中:
df['Clicks'].eq(1).groupby(df['Categories']).agg(['sum','mean'])
輸出:
sum mean
Categories
1 1 0.333333
2 2 0.500000
3 1 0.333333
4 1 0.500000
要匹配輸出的命名,請使用命名聚合:
df['Clicks'].eq(1).groupby(df['Categories']).agg(Click_counts='sum', Clicks_prob='mean')
輸出:
Click_counts Clicks_prob
Categories
1 1 0.333333
2 2 0.500000
3 1 0.333333
4 1 0.500000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/347962.html
上一篇:使用python假設庫生成Pandas資料框,其中一行依賴于另一行
下一篇:如何洗掉熊貓列名上方的索引號?
