gpt4 book ai didi

pandas - 模式返回异常 : Must produce aggregated value

转载 作者:行者123 更新时间:2023-12-04 00:25:12 31 4
gpt4 key购买 nike

对于这个数据框

   values  ii
0 3.0 4
1 0.0 1
2 3.0 8
3 2.0 5
4 2.0 1
5 3.0 5
6 2.0 4
7 1.0 8
8 0.0 5
9 1.0 1

此行返回“必须提供聚合值
bii2=df.groupby(['ii'])['values'].agg(pd.Series.mode)

虽然这条线有效
bii3=df.groupby('ii')['values'].agg(lambda x: pd.Series.mode(x)[0])

你能解释一下这是为什么吗?

最佳答案

问题是 mode有时返回 2 个或更多值,使用 GroupBy.apply 检查解决方案:

bii2=df.groupby(['ii'])['values'].apply(pd.Series.mode)
print (bii2)
ii
1 0 0.0
1 1.0
2 2.0
4 0 2.0
1 3.0
5 0 0.0
1 2.0
2 3.0
8 0 1.0
1 3.0
Name: values, dtype: float64

还有 Pandas agg输出中需要标量,因此返回错误。所以如果选择第一个值它工作得很好
bii3=df.groupby('ii')['values'].agg(lambda x: pd.Series.mode(x).iat[0])
print (bii3)
ii
1 0.0
4 2.0
5 0.0
8 1.0
Name: values, dtype: float64

关于pandas - 模式返回异常 : Must produce aggregated value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604765/

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