2013-01-17 26 views
4

爲什麼我得到不一致的羣體大小「計數」?
我使用熊貓10.0,與6百萬行的數據集被減少到40萬一個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萬條記錄。熊貓的大小()對這個小傢伙很有效。

  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 
+2

你可以嘗試找到一個最小的例子和/或轉儲數據集的某個地方(可能審查)版本? – DSM

+0

這是「間歇性」還是在這兩種調用方式上總是不一樣? –

+0

因此,我發現在最終的錯誤計數問題附近出現了400k個結果。它確實對大部分都是正確的。我還沒有找到一個確定的火災方式來計算有多少人被計算在內。 –

回答

0

基於您的評論的dtypes是「對象」,我不知道你Z_ID被加載爲字符串的列,造成的因素列。如果某些字符串具有前導空格,則它們將被解釋爲不同的因素級別。

更一般地說,無論'對象'類型列保存可能有一個比較功能,不會像你認爲的那樣工作。這是有點延伸。

對你來說更好的事情可能是弄清楚爲什麼你的dataframe列dtype不是int64。我發現在數據框中獲取正確的dtypes在使用熊貓時非常重要。如果你可以發佈一些代碼,我相信這裏的社區可以給出一個建議來正確加載類型。