我在pandas中使用groupby
來計算pandas中某些數據框中的列使用層次索引組織的聚合統計信息。 對於計算出來的統計數據,我希望最終返回到表格表格,其中組被重新轉換爲具有組值的列,例如,如:在pandas中使用groupby時還原層次列索引
index = pd.MultiIndex.from_tuples([('A', 'a'), ('B', 'b')])
df = pd.DataFrame(np.random.randn(8,2), columns=index)
這導致例如,這個數據幀
A B
a b
0 0.511157 0.334748
1 0.031113 -0.477456
2 0.288080 -0.258238
3 0.138467 -0.955547
4 -0.087873 0.017494
5 -0.667393 1.190039
6 -0.068245 -1.282864
7 -0.996982 0.589667
現在我計算使用GROUPBY的統計數據和重置索引重新建立一個扁平的數據幀:
df.groupby([('A','a')]).mean().reset_index()
(A, a) B
b
0 -0.996982 0.589667
1 -0.667393 1.190039
2 -0.087873 0.017494
3 -0.068245 -1.282864
4 0.031113 -0.477456
5 0.138467 -0.955547
6 0.288080 -0.258238
7 0.511157 0.334748
我怎樣才能做到這一點('A', 'a')
成爲多指數的一部分再次,希望以自動方式?或者另有說明:有沒有一種方法可以在groupby操作期間保留分層列結構。
IIUC您可以重新分配的列值索引。 'dfs = df.groupby([('A','a')])。mean()。reset_index()'和'dfs.columns = index' – Abbas
@Abbas但是如果我做更復雜的分組,確保訂單始終保留? – languitar
爲自己嘗試,它將被保留。 – Abbas