ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 意外的KeyError Pandas在尝试将多个函数聚合到新列时

2019-05-28 15:42:28  阅读:372  来源: 互联网

标签:python dictionary dataframe aggregate pandas


我看了下面的问题:

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  Information 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’}))

标签:python,dictionary,dataframe,aggregate,pandas
来源: https://codeday.me/bug/20190528/1172190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有