如何计算python中每15行的百分位数

问题描述

我的数据框中有810行关于车速,我试图计算每15行的第85个百分位速度。这是我到目前为止所做的:

count = 0
stat1 = []
for i,row in df.iterrows():
    if count == 10:
        stat1 = df.dbl_v.quantile(0.85)
        count = 0
    else:
        count += 1

如何存储和查看第85个百分位速度?应该是85分之54的速度。

谢谢

解决方法

我们可以使用除以15的余数,每15行创建一组

grouper = df.groupby(df.index // 15)

要通过将.quantile应用于多列来创建新的DF,我们可以这样做:

df_new = grouper.agg(
               quantile85 = ('dbl_v',lambda x: x.quantile(0.85)),quantile20 = ('other_column',lambda x: x.quantile(0.20)),mean_dbl_v = ('dbl_v','mean'),sum_col3 = ('name_column3','sum')
               #and so on...
           )