gpt4 book ai didi

python - 我们可以在 pandas groupby agg 函数中使用 iterables 吗?

转载 作者:行者123 更新时间:2023-12-05 01:53:11 24 4
gpt4 key购买 nike

我有一个 pandas groupby 函数。我有另一个 dict 形式的输入,它具有 {column:aggfunc} 结构,如下所示:

d = {'production': 'sum',
'Demand': 'first'}

我想使用这个字典来应用 aggregate 函数,如下所示:

df.groupby(['Month']).agg(production=pd.NamedAgg('production', aggfunc='sum'),
demand=pd.NamedAgg('Demand', aggfunc='first'))

有什么方法可以使用输入字典 d 实现这一点(可能是通过使用字典理解)?

最佳答案

如果字典包含列名和聚合函数,则将其传递给 GroupBy.agg , 列名没有改变:

df = pd.DataFrame({'Month': ['jan', 'jan', 'feb'],
'production':[1,5,9],
'Demand': list('abc')})

d = {'production': 'sum', 'Demand': 'first'}

df = df.groupby(['Month']).agg(d)
print (df)
production Demand
Month
feb 9 c
jan 6 a

如果还需要在字典中使用命名聚合来设置新的列名:

d = {'production123': ('production', 'sum'), 'demand':('Demand',  'first')}


df = df.groupby(['Month']).agg(**d)
print (df)
production123 demand
Month
feb 9 c
jan 6 a

关于python - 我们可以在 pandas groupby agg 函数中使用 iterables 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71156507/

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