我看了下面的问题:
Apply multiple functions to multiple groupby columns
我有数据
p.date p.instrument p.sector \
11372 2013-02-15 00:00:00 A Health Care
11373 2013-02-15 00:00:00 AA Materials
11374 2013-02-15 00:00:00 AAPL @R_746_4045@ion Technology
11375 2013-02-15 00:00:00 ABBV Health Care
11376 2013-02-15 00:00:00 ABC Health Care
p.industry p.retn p.pfwt b.bwt
11372 Health Care Equipment & Services -5.232929 NaN 0.000832
11373 Aluminum 0.328947 NaN 0.000907
11374 Computer Hardware -1.373927 NaN 0.031137
11375 Pharmaceuticals 2.756020 NaN 0.004738
11376 Health Care distribution & Services -0.371179 NaN 0.000859
但是当我尝试:
test1.groupby("p.sector").agg({'r1': lambda x: x['p.pfwt'].sum()})
我收到了错误
KeyError: 'r1'
我正在尝试使用当前DataFrame的一组结果创建新列.
我错过了什么?谢谢
解决方法:
使用
test1.groupby("p.sector").agg({'p.pfwt': np.sum})
以this pandas docs为例.
>聚合字典中的键必须与数据帧中预先存在的键对应.您的程序失败,因为您的数据框中没有“r1”列,因此它无法聚合不存在的内容.
>如果你需要重命名结果,那么你可以为这样的系列添加一个链式操作:.agg([np.sum,np.mean,np.std]).rename(columns = {‘sum’: ‘foo’,’mean’:’bar’,’std’:’baz’}))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。