我有一个 Dataframe ,如下所示:
df:
Score
group
A 100
A 34
A 40
A 30
C 24
C 60
C 35
对于数据中的每一组,我想找出得分35的百分位值。(即35适合分组数据的百分位)
我试过不同的方法,但都不管用。
scipy.stats.percentileofscore(df['Score], 35, kind='weak')
--> This is working but this doesn't give me the percentile grouped by index
df.groupby('group')['Score].percentileofscore()
--> 'SeriesGroupBy' object has no attribute 'percentileofscore'
scipy.stats.percentileofscore(df.groupby('group')[['Score]], 35, kind='strict')
--> TypeError: '<' not supported between instances of 'str' and 'int'
我的理想输出如下所示:
df:
Score Percentile
group
A 50
C 33
有谁能给我建议一下什么在这里很好用吗?
2条答案
按热度按时间m1m5dgzv1#
序列在X点的反分位数函数是序列中小于X的值的比例,对吗?所以:
mul
乘以100以获得百分比6ovsh4lw2#
为了以更通用的方式回答这个问题,您需要在组上进行自定义聚合,panda允许您使用
agg
方法来完成。您可以自行定义函数,也可以使用程式库中的函数:
输出量: