如何解决在groupby对象的pandas agg方法中传递函数
这是在Google colab中
import pandas as pd
df = pd.DataFrame({'A': ['state1','state2','state1','state2'],'B': [1,2,3,4,5],'C': [10,11,12,13,14]})
print(df)
A B C
0 state1 1 10
1 state2 2 11
2 state1 3 12
3 state1 4 13
4 state2 5 14
这是DataFrame。如果我们将内置的“ max”函数与agg
函数一起使用,则效果很好。
df.groupby('A',as_index=False)['C'].agg('max')
A C
0 state1 13
1 state2 14
但是,如果我们使用lambda
函数会引发错误
df.groupby('A',as_index=False)['C'].agg(lambda x: x.max())
AttributeError: 'Series' object has no attribute 'columns'
这为什么引发错误?在agg
方法中传递lambda函数和内置函数有什么区别?
解决方法
这对我有用:
df.groupby('A',as_index=False)[['C']].agg(lambda x: x.max())
,
以前,当我第一次运行该问题时,熊猫版本是1.0.5。
但是之后,我将版本更新为1.1.0并运行了相同的内容,并且运行正常。
!pip install pandas==1.1.0
import pandas as pd
df = pd.DataFrame({'A': ['state1','state2','state1','state2'],'B': [1,2,3,4,5],'C': [10,11,12,13,14]})
print(df.groupby('A',as_index=False)['C'].agg(lambda x: x.max()))
A C
0 state1 13
1 state2 14
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。