2015-12-02 52 views
4

考慮這個例子:確保GROUPBY輸出型

import pandas as pd 
import numpy as np 
foo = pd.DataFrame(dict(letter=['a', 'a', 'a', 'b', 'b', 'b', 'a', 'b'], 
       number=[1,1,2,2,3,np.nan, np.nan,4])) 
grouped = foo.groupby(foo.number) 
print grouped['letter'].transform(lambda x: sum(x=='a')) 

Out[18]: 
0 2 
1 2 
2 1 
3 1 
4 0 
5 b 
6 a 
7 0 

而不是顯示行數56'a',和'b'1的被示出,這大概是因爲GROUPBY被索引上的np.nan值。有沒有辦法阻止這種情況的發生,而不用用一些虛擬變量代替nan值?另外 - 爲什麼會發生?

+0

不幸的是,它看起來像按nan分組的組看起來是不包含的(參見'print grouped.groups')。也看到這個問題:https://stackoverflow.com/questions/18429491/groupby-columns-with-nan-missing-values – wflynny

回答