意外KeyError异常熊猫试图汇聚多个功能集成到新列
问题描述:
我已经看过了以下问题:意外KeyError异常熊猫试图汇聚多个功能集成到新列
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'}))
+0
Thanks @joaquin我想在结果数据框中添加表示来自源数据框的计算信息的新列。如何做到这一点? – 2014-11-22 11:35:20
+0
新信息以p.pfwt聚合。如果你不喜欢这个名字,你可以在聚合后改变它。在任何情况下,p.pfwt原始数据都将丢失,因为聚合后无法保留原始信息(至少没有没有额外的处理) – joaquin 2014-11-22 13:50:04
键: