python - 为什么 pandas 在聚合不存在的列时给出 NaN 列值?

标签 python pandas

我想要下面的 DataFrame 中按字母排列的数字总和:

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]

这导致我们的团队竭尽全力确定错误所在。相反,我们想要一个错误声明,例如:

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'

当请求的列丢失时,从聚合返回 DataFrame 不会导致错误,是否有任何特殊原因?

这是在 pandas 0.13.1 上。

最佳答案

这已在 master/0.14.0 中修复(周末发布); rc1 是 here如果你想尝试

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'

关于python - 为什么 pandas 在聚合不存在的列时给出 NaN 列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895305/

相关文章:

python - 你如何运行 Openerp 7 内置的单元测试?

python - 在不安装 PyPI 的情况下获取包的要求?

python - 如何根据 pandas 中的公共(public)键合并两个数据集?

python - OSError : [Errno 36] File name too long: for python package and . txt 文件, Pandas 打开

python - Pandas/SQL-根据不同Group计算百分比

python - django - 将现有的 ModelAdmin 及其内联添加到另一个管理表单

java - SimpleDateFormat 解析 strftime 生成的日期时出现问题

Python2/Windows7 : Opening filename that contains a german Umlaut

pandas - 根据数据帧中数字的连续出现计算条件概率

python - pandas groupby的分配结果