4

为什么我得到不一致的组大小“计数”?
我正在使用 Pandas 10.0,将 600 万行数据集减少到 400k groupby:

In [16]: df.groupby('Z ID').size()[470009:470010]
Out[16]:
Z ID
994555          6

In [14]: df[df['Z ID'] == 994555].groupby('Z ID').size() 
Out[14]:
Z ID
994555          9

当我查看原始数据时,有 9 个项目。

编辑:原始数据 完整的数据集是 600 万条记录。Pandas size() 对小家伙很有效。

            FilterDate           Z ID   AR Code AA Code
48349    12/1/2007..2/28/2009    994555  377     202
151060   2/1/2008..4/30/2009     994555  377     202
204179   3/1/2008..5/31/2009     994555  377     202
244504   4/1/2008..6/30/2009     994555  377     202
302728   5/1/2008..7/31/2009     994555  377     202
365780   6/1/2008..8/31/2009     994555  377     202
431555   7/1/2008..9/30/2009     994555  377     202
499234   8/1/2008..10/31/2009    994555  377     202
786937   12/1/2008..2/28/2010    994555  377     202
4

1 回答 1

0

根据您对 dtypes 是“对象”的评论,我想知道您的 Z_ID 是否作为字符串列加载,从而导致因子列。如果某些字符串具有前导空格,则它们将被解释为不同的因子级别。

更一般地,该列包含的任何“对象”类型都可能具有一个无法按照您认为的方式工作的比较函数。这有点牵强。

对您来说更好的事情可能是弄清楚为什么您的数据框列 dtype 不是 int64。我发现在 pandas 中工作时,在数据框中获取正确的 dtypes 非常重要。如果您可以发布一些代码,我相信这里的社区可以提出正确加载类型的建议。

于 2013-03-07T15:12:02.243 回答