pandas 在groupby中循环panda聚合

f4t66c6m  于 2023-01-19  发布在  其他
关注(0)|答案(1)|浏览(136)

我正在寻找缩短代码,我不需要重复多个lambda函数。这段代码是工作,想进一步优化。任何帮助将不胜感激。

for col in col_list:
        f = { col: [lambda x: x.quantile(0.01), lambda x: x.quantile(0.05), lambda x: x.quantile(0.10), lambda x: x.quantile(0.15),
                    lambda x: x.quantile(0.20), lambda x: x.quantile(0.25), lambda x: x.quantile(0.30), lambda x: x.quantile(0.35)
                   ]}
        grpby_df = df.groupby('grpbycol').agg(f)
gdrx4gfi

gdrx4gfi1#

GroupBy.分位数存在,并且它接受分位数值列表,因此我们可以

(df.groupby("grpbycol")[col]
   .quantile([0.01, *np.arange(0.05, 0.40, 0.05)])
   .unstack())

其中,np.arange有助于生成该序列,并且末尾的unstack将分位数值从多索引的级别移动到列部分。

相关问题