我正在按多列對數據框進行分組並聚合以獲取多個統計信息。如何獲得一個完全平坦的結構,每個可能的組合鍵都被枚舉爲行並且每個統計量都以列的形式出現?從分組和多個聚合平分分層索引pandas.DataFrame
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])
這樣我得到:我需要得到它平
cats people
mean std mean std
city day
Berlin Friday 6.146924 0.721263 10.445606 0.730992
Monday 5.239267 NaN 9.022811 NaN
Oslo Friday 6.322276 0.866899 11.579813 0.114341
Monday 5.028919 0.815674 10.458439 1.182689
:
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
您可以直接調用'grouped.reset_index()'恢復索引返回列 – EdChum
@EdChum它仍然留下一個MultiIndex,使得難以操縱彙總的統計信息作爲列 –
指定'grouped = grouped.reset_index()',確定你想要展平列也 – EdChum