意外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的一组结果创建新列。

我错过了什么?由于

+2

键:

  • 如果您需要重命名的结果,那么你可以在连锁经营中添加像这样的系列。在你的数据框中没有'r1'列,所以你不能聚合不存在的东西 – joaquin 2014-11-22 11:21:48
  • 使用

    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