Pandas自带的数据累积方法,比如mean()、sum()、max()。而对于层级索引数据,可以设置参数level实现对数据子集的累积操作。这种语法其实就是GroupBy功能的快捷方式。
#多级行列索引
index = pd.MultiIndex.from_product([[2013, 2014], [1, 2]],
names=['year', 'visit'])
columns = pd.MultiIndex.from_product([['Bob', 'Guido', 'sue'], ['HR', 'Temp']],
names=['subject', 'type'])
#模拟数据
data = np.round(np.random.randn(4, 6), 1)
data[:, ::2] *= 10
data += 37
#创建DataFrame
health_data = pd.DataFrame(data, index=index, columns=columns)
health_data
#需要计算每一年各项指标的平均值,那么可以将参数level设置为索引year
data_mean = health_data.mean(level='year')
data_mean
#如果再设置axis参数,就可以对列索引进行类似的累积操作了
data_mean.mean(axis=1, level='type')
本文引自《python数据科学手册》,详情请见原书或查询Pandas官方文档。