gpt4 book ai didi

python - 使用多个函数在 groupby.agg 中传递参数

转载 作者:太空狗 更新时间:2023-10-30 01:56:42 24 4
gpt4 key购买 nike

有谁知道如何在具有多个 函数的 groupby.agg() 中传递参数?

最重要的是,我想将它与自定义函数一起使用,但我会使用需要参数的内置函数来问我的问题。

假设:

import pandas as pd
import numpy as np
import datetime
np.random.seed(15)
day = datetime.date.today()
day_1 = datetime.date.today() - datetime.timedelta(1)
day_2 = datetime.date.today() - datetime.timedelta(2)
day_3 = datetime.date.today() - datetime.timedelta(3)
ticker_date = [('fi', day), ('fi', day_1), ('fi', day_2), ('fi', day_3),
('di', day), ('di', day_1), ('di', day_2), ('di', day_3)]
index_df = pd.MultiIndex.from_tuples(ticker_date, names=['lvl_1', 'lvl_2'])
df = pd.DataFrame(np.random.rand(8), index_df, ['value'])

我该怎么做:

df.groupby('lvl_1').agg(['min','max','quantile'])

作为“分位数”的参数:

q = 0.22 

最佳答案

使用lambda函数:

q = 0.22
df1 = df.groupby('lvl_1')['value'].agg(['min','max',lambda x: x.quantile(q)])
print (df1)
min max <lambda>
lvl_1
di 0.275401 0.530000 0.294589
fi 0.054363 0.848818 0.136555

或者可以创建 f 函数并将其设置为自定义列名称:

q = 0.22
f = lambda x: x.quantile(q)
f.__name__ = 'custom_quantile'
df1 = df.groupby('lvl_1')['value'].agg(['min','max',f])
print (df1)
min max custom_quantile
lvl_1
di 0.275401 0.530000 0.294589
fi 0.054363 0.848818 0.136555

关于python - 使用多个函数在 groupby.agg 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48843887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com