我有一個熊貓 groupby 功能。我有另一個 dict 形式的輸入,它具有 {column:aggfunc} 結構,如下所示:
d = {'production': 'sum',
'Demand': 'first'}
我想使用這個dict來應用aggregate函式如下:
df.groupby(['Month']).agg(production=pd.NamedAgg('production', aggfunc='sum'),
demand=pd.NamedAgg('Demand', aggfunc='first'))
有什么方法可以使用輸入字典d(可能是通過使用字典推導)來實作這一點?
uj5u.com熱心網友回復:
如果字典包含列名并且聚合函式將其傳遞給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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425816.html
標籤:Python 熊猫 熊猫-groupby 总计的
