2017-03-16 168 views
1

我是熊貓新手,我對groupby有點困惑。如果我有一個像數據幀:熊貓dataframe groupby函數

pic1

然後:df.groupby(['A']).count()回報類似(不完全,但接近): enter image description here

我的問題是什麼超過1列,當你發生羣體?如:

df.groupby(['A','B','C']).count() 

是否重新組合列A,B和C然後計算計數?

回答

1

count計算非空值的數量。在groupby上下文中,它計算每個組中非空值的數量。當你groupby一次多個列,groupby爲每個獨特的組合創建一個組。所以... df.groupby(['A','B','C']).count()計數的值的每個唯一組合每列非空值的['A', 'B', 'C']

數量考慮樣本數據幀df

df = pd.DataFrame(dict(
     A=list('xxxxxxxxyyyyyyyyzzzzzzzz'), 
     B=list('111122221111222211112222'), 
     C=list('abababababababababababab'), 
     D=list(range(23)) + [np.nan] 
    )) 

然後

df.groupby(['A','B','C']).count() 

     D 
A B C 
x 1 a 2 
    b 2 
    2 a 2 
    b 2 
y 1 a 2 
    b 2 
    2 a 2 
    b 2 
z 1 a 2 
    b 2 
    2 a 2 
    b 1