如何计算组内值的平均百分比?



我有一个数据框架:

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

怎么做?

你可以试试:

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

你的问题不太清楚

相关内容

  • 没有找到相关文章

最新更新