假设我有以下内容。我和#34;快乐"然后总结每个小组。它很棒。
import pandas as pd
testdf = pd.DataFrame({"happy": [1, 2, 1, 3], "sad": [4, 5, 6, 7], \
"cool":[1, 99, 0, -5]})
testgb = testdf.groupby(["happy"])
testgb.sum()
但是如果我想使用我自己的函数来获取值列表并返回一个数字INSTEAD为sum(),该怎么办?像
def my_max(ilist):
return max(ilist)
testgb.my_max()
在这种情况下,输出应为:
happy sad cool
1 6 1
2 5 99
3 7 -5
有谁知道怎么做?我读了如何使用你自己的函数进行分组而不是累积
答案 0 :(得分:1)
我假设您要传递其他列的值列表,例如sad
。您可以使用agg
功能
testdf = pd.DataFrame({"happy": [1, 2, 1, 3], "sad": [4, 5, 6, 7], "cool":[1, 99, 0, -5]})
testgb = testdf.groupby(["happy"]).agg({'sad': lambda x: max(x)})
当然,可能有内置的程序可以实现您的想法但是由于您提出了一个假设的场景,因此很难说更多。