Python 为什么熊猫在聚合一个不';不存在?

Python 为什么熊猫在聚合一个不';不存在?,python,pandas,Python,Pandas,让我们在下面的数据框中用字母表示数字的总和: In [10]: df Out[10]: letter number 0 A 1 1 A 2 2 B 3 3 B 4 4 C 5 5 C 6 [6 rows x 2 columns] 这很容易做到: In [11]: df.groupby('letter')[['number']].sum() Out[11]:

让我们在下面的数据框中用字母表示数字的总和:

In [10]: df
Out[10]:
  letter  number
0      A       1
1      A       2
2      B       3
3      B       4
4      C       5
5      C       6

[6 rows x 2 columns]
这很容易做到:

In [11]: df.groupby('letter')[['number']].sum()
Out[11]:
        number
letter
A            3
B            7
C           11

[3 rows x 1 columns]
但是如果我把我的专栏拼错了,我会得到
NaN
值:

In [12]: df.groupby('letter')[['numberrrrr']].sum()
Out[12]:
        numberrrrr
letter
A              NaN
B              NaN
C              NaN

[3 rows x 1 columns]
这让我们的团队进行了一番追查,以确定bug的位置。相反,我们需要一个错误语句,如:

In [13]: df.groupby('letter')['numberrrrr'].sum()
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-13-8ebcdeee8710> in <module>()
----> 1 df.groupby('letter')['numberrrrr'].sum()

/usr/local/Anaconda/lib/python2.7/site-packages/pandas/core/groupby.pyc in __getitem__(self, key)
   2475         else:
   2476             if key not in self.obj:  # pragma: no cover
-> 2477                 raise KeyError(str(key))
   2478             # kind of a kludge
   2479             return SeriesGroupBy(self.obj[key], selection=key,

KeyError: 'numberrrrr'
[13]中的
:df.groupby('letter')['numberrrr'].sum()
---------------------------------------------------------------------------
KeyError回溯(最近一次呼叫最后一次)
在()
---->1 df.groupby('letter')['numberrrr'].sum()
/usr/local/Anaconda/lib/python2.7/site-packages/pandas/core/groupby.pyc中的
2475其他:
2476如果键不在self.obj:#pragma:无盖
->2477升起钥匙错误(str(钥匙))
2478#有点混乱
2479返回序列GroupBy(self.obj[key],selection=key,
KeyError:'numberrrr'
当请求的列丢失时,从聚合返回数据帧不会导致错误,这有什么特殊原因吗


这在pandas 0.13.1上。

这在master/0.14.0(本周末发布)中已修复;如果您想尝试,请使用rc1

In [7]: df.groupby('letter')[['number']].sum()
Out[7]: 
        number
letter        
A            3
B            7
C           11

In [8]: df.groupby('letter')[['numberrrr']].sum()
KeyError: "Columns not found: 'numberrrr'"

In [9]: pd.__version__
Out[9]: '0.14.0rc1-43-g0dec048'