我将按多个列对数据帧进行分组,并进行聚合以获得多个统计信息。如何获得一个完全平坦的结构,每个可能的组键组合都被枚举为行,而每个统计信息作为列显示?在
import numpy as np
import pandas as pd
cities = ['Berlin', 'Oslo']
days = ['Monday', 'Friday']
data = pd.DataFrame({
'city': np.random.choice(cities, 12),
'day': np.random.choice(days, 12),
'people': np.random.normal(loc=10, size=12),
'cats': np.random.normal(loc=6, size=12)})
grouped = data.groupby(['city', 'day']).agg([np.mean, np.std])
这样我就能得到:
^{pr2}$我要把它弄平:
city day cats_mean cats_std people_mean people_std
Berlin Friday 6.146924 0.721263 10.445606 0.730992
Berlin Monday 5.239267 NaN 9.022811 NaN
Oslo Friday 6.322276 0.866899 11.579813 0.114341
Oslo Monday 5.028919 0.815674 10.458439 1.182689
您可以在.agg中使用字典重命名列,然后删除列级别并重置_index(): 看这个SO Post
您可以在列级别执行列表理解,并使用下划线连接,然后调用
reset_index
:相关问题 更多 >
编程相关推荐