データフレームを複数の列でグループ化し、集約して複数の統計を取得しています。行として列挙されたグループキーと各列として存在する各統計の組み合わせを使用して、完全にフラットな構造を得る方法はありますか?グループ化された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