我有一個資料框:
date type
2021-08-12 fail
2021-08-12 fail
2021-08-12 win
2021-08-12 great_win
2021-08-13 fail
2021-08-13 win
2021-08-13 win
2021-08-13 win
我想計算日期組中每種“型別”的百分比,然后計算所有日期之間的平均值。所以想要的結果必須是:
date type type_perc
2021-08-12 fail 0.5
2021-08-12 win 0.25
2021-08-12 great_win 0.25
2021-08-13 fail 0.25
2021-08-13 win 0.75
2021-08-13 great_win 0.0
然后平均所有日期。這是所需的最終結果:
type type_perc
fail 0.375
win 0.5
great_win 0.175
怎么做?
uj5u.com熱心網友回復:
你可以試試這個:
tmp = df.groupby(['date', 'type']).size()/df.groupby('date')['type'].size()
print(tmp)
date type
2021-08-12 fail 0.50
great_win 0.25
win 0.25
2021-08-13 fail 0.25
win 0.75
dtype: float64
result = tmp.groupby(level=1).sum()/tmp.sum()
print(result)
type
fail 0.375
great_win 0.125
win 0.500
dtype: float64
或這個:
result = tmp.groupby(level=1).mean()
print(result)
type
fail 0.375
great_win 0.250
win 0.500
dtype: float64
你的問題不是很清楚
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325879.html
上一篇:如何減去資料幀中的兩個連續行?
