首页 > 解决方案 > 具有多级列的熊猫数据框中的数据透视表

问题描述

我有一个熊猫数据框df,如下所示:

node    date_   A1         A2   Month
bkt             B1         B2   
0   1/1/2015     0.98       1
1   1/2/2015     0.71    0.96   1
2   1/3/2015     0.98       1
3   2/4/2015     0.34       2
4   2/2/1900     0.96    1.57   2
5   2/6/2015     0.01    0.03   2
6   3/7/2015     0.30    0.25   3

我正在尝试按月份对每一列进行分组以获得以下平均值:

Month   A1   A2
        B1   B2
1    0.89    0.96
2    0.44    0.80 
3    0.30    0.25 

在哪里

0.89 = avreage(0.98, 0.71, 0.98) 
0.80 = average(1.57, 0.03)

每个月我想按 (A1, B1) 和 (A2, B2) 分组以获得平均值。我不确定如何进行这种多级分组。

编辑:

df.columns
MultiIndex([( 'date_', ''),
            ( 'A1', 'B1'),
            ( 'A2',  'B2'),
            ( 'Month', '')],
           names=['node', 'bkt'])

标签: pandaspython-3.8

解决方案


国际大学联盟:

df['date_'] = pd.to_datetime(df['date_'])
df.drop(('Month',''), axis=1).groupby(df['date_'].dt.month).mean()

输出:

node         A1        A2
bkt          B1        B2
date_                    
1      0.890000  0.986667
2      0.436667  1.200000
3      0.300000  0.250000

推荐阅读