使用Pandas在数据透视表上运行groupby

时间:2014-02-14 01:27:03

标签: python pandas pivot-table

我有一个如下所示的数据透视表:

In [41]: counts
Out[41]: 
SourceColumnID                    3029903181  3029903182  3029903183  3029903184  ResponseCount
ColID      QuestionID RowID                                                                    
3029903193 316923119  3029903189         773         788         778         803           3142
3029903194 316923119  3029903189         766         799         782         773           3120

[2 rows x 5 columns]

我试图弄清楚我如何通过RowID进行分组,以便我可以获得每个RowID的每个列的总计数(在这种情况下,它只是总结所有这些,因为2在同一个rowid中)

这是数据透视表索引:

In [42]: counts.index
Out[42]: 
MultiIndex(levels=[[3029903193, 3029903194], [316923119], [3029903189]],
           labels=[[0, 1], [0, 0], [0, 0]],
           names=[u'ColID', u'QuestionID', u'RowID'])

1 个答案:

答案 0 :(得分:2)

你想要'RowID'分组。由于它是MultiIndex上的一个级别,因此您将'RowID'传递给level关键字。

In [5]: df.groupby(level='RowID').sum()
Out[5]: 
            3029903181  3029903182  3029903183  3029903184  ResponseCount
RowID                                                                    
3029903189        1539        1587        1560        1576           6262