gpt4 book ai didi

python - 如何分组应用聚合回到 Python Pandas 中的数据框?

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:17 25 4
gpt4 key购买 nike

def my_per_group_func(temp):

# apply some tricks here
return a, b, c, d

output = dataframe.groupby('group_id').apply(my_per_group_func)

我的问题是如何将“输出”聚合回具有某些列名称的数据框(显然数据框的索引是 group_id)?

通常我做的是使用聚合函数

但这里的问题是 my_per_group_func 在这里非常复杂,它不能使用通常的“聚合”函数语法来完成

有人知道吗?

谢谢

最佳答案

似乎需要返回 DataFrameSeries - 检查 flexible apply docs :

dataframe = pd.DataFrame({'group_id':[1,1,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})

print (dataframe)
B C D E F group_id
0 4 7 1 5 7 1
1 5 8 3 3 4 1
2 6 9 5 6 3 3

def my_per_group_func(x):
#print (x)
#some sample operations
a = x.B + x.C
b = x.E + x.B
c = x.D + x.F
d = x.F + x.E
return pd.DataFrame({'group_id': x.group_id, 'a':a, 'b':b, 'c':c, 'd':d})

output = dataframe.groupby('group_id').apply(my_per_group_func)
print (output)
a b c d group_id
0 11 9 8 12 1
1 13 8 7 7 1
2 15 12 8 9 3

def my_per_group_func(x):
#print (x)
#some sample aggregations
a = (x.B + x.C).mean()
b = (x.E + x.B).sum()
c = (x.D + x.F).median()
d = (x.F + x.E).std()
return pd.Series([a,b,c,d], index=['a','b','c','d'])

output = dataframe.groupby('group_id').apply(my_per_group_func)
print (output)
a b c d
group_id
1 12.0 17.0 7.5 3.535534
3 15.0 12.0 8.0 NaN

关于python - 如何分组应用聚合回到 Python Pandas 中的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42161849/

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