2016-08-22 44 views
0

我想有一個GROUPBY後密鑰的所有組合,所以如果ana獨特的價值觀和b具有nb比輸出的行數唯一值應該是na*nb。我曾嘗試reindexreindex_axis,但它沒有工作:如何獲得在Python熊貓GROUPBY畢竟組合鍵

>>> df = pd.DataFrame({'a': [1,1,2,3],'b':[1, 2, 3,4], 'c':[1,2,3,4]}) 
>>> df.groupby(['a','b']).count() 
    c 
a b 
1 1 1 
    2 1 
2 3 1 
3 4 1 

我想獲得:

a b 
1 1 1 
    2 1 
    3 None 
    4 None 
2 1 None 
    2 None 
    3 1 
    4 None 
3 1 None 
    2 None 
    3 None 
    4 1 

回答

4

您可以使用重建索引:

idx = pd.MultiIndex.from_product((df['a'].unique(), df['b'].unique())) 
df.groupby(['a','b']).count().reindex(idx) 

Out: 
     c 
1 1 1.0 
    2 1.0 
    3 NaN 
    4 NaN 
2 1 NaN 
    2 NaN 
    3 1.0 
    4 NaN 
3 1 NaN 
    2 NaN 
    3 NaN 
    4 1.0