Pandas 对数据透视表的列应用聚合函数

Pandas 对数据透视表的列应用聚合函数,pandas,pivot-table,Pandas,Pivot Table,我通过在Z列中取最大值生成了以下透视表: val X x1 x2 Y y1 y2 y1 y2 ID a 9 1 5 11 b 8 10 7 6 在对Z值取最大值后,我需要报告平均值(y1,y2)。所需表格为: val X x1 x2 Y mean(y1,y2) mean(y1,y2) ID a 5 8 b 9 6.5 我如何使用熊猫来实现这一点 我的

我通过在
Z
列中取最大值生成了以下透视表:

   val
X   x1     x2
Y   y1  y2 y1  y2
ID
a    9   1  5  11
b    8  10  7   6
在对
Z
值取最大值后,我需要报告
平均值(y1,y2)
。所需表格为:

    val
X    x1          x2
Y    mean(y1,y2) mean(y1,y2)
ID
a    5           8
b    9           6.5
我如何使用熊猫来实现这一点

我的MWE:

#!/usr/bin/python
from pandas import DataFrame
import pandas as pd
import numpy as np

data=pd.read_table('data.txt')
pv=data.pivot_table(index=['ID'], columns=['X','Y'], values=['val'], aggfunc=np.max )
print pv
data.txt

ID  X   Y   Z   val
a   x1  y2  z1  1
b   x1  y1  z2  2
a   x2  y2  z2  3
a   x1  y1  z4  4
a   x2  y1  z1  5
b   x2  y2  z3  6
b   x2  y1  z2  7
b   x1  y1  z3  8
a   x1  y1  z3  9
b   x1  y2  z3  10
a   x2  y2  z2  11

您可以通过
级别
参数和
来计算所需的轴级别:

In [142]:
pv.mean(level='X', axis=1)

Out[142]:
X   x1   x2
ID         
a    5  8.0
b    9  6.5