熱線電話:13121318867

登錄
首頁大數據時代 數據分析師教程《Python數據分析極簡入門》第2節 8-1 Pandas 數據重塑 - 數據堆疊
數據分析師教程《Python數據分析極簡入門》第2節 8-1 Pandas 數據重塑 - 數據堆疊
2024-08-27
收藏

《Python數據分析極簡入門》

第2節 8-2 Pandas 數據重塑 - 數據堆疊

數據堆疊

df = pd.DataFrame({'專業': np.repeat(['數學與應用數學''計算機''統計學','物理學'], 6),
                   '班級': ['1班','2班','3班']*8,
                   '科目': ['高數''線代'] * 12,
                   '平均分': [random.randint(60,100for i in range(24)],
                   '及格人數': [random.randint(30,50for i in range(24)]})

df2 = pd.pivot_table(df, index=['專業','科目'],  values=['及格人數','平均分'],
               aggfunc={'及格人數':np.sum,"平均分":np.mean})
df2
及格人數 平均分
專業 科目
數學與應用數學 線代 107 76.000000
高數 107 65.000000
物理學 線代 111 82.333333
高數 115 78.666667
統計學 線代 107 71.000000
高數 122 74.000000
計算機 線代 122 78.333333
高數 137 74.000000
stacked = df2.stack()

壓縮”后的DataFrameSeries(具有MultiIndex作為索引), stack() 的逆操作是unstack(),默認情況下取消最后壓縮的那個級別:

堆疊stack(),顧名思義就是把透視結果堆到一起。接下來我們把透視后堆疊的數據一步步展開unstack()

stacked.unstack()
及格人數 平均分
專業 科目
數學與應用數學 線代 107.0 76.000000
高數 107.0 65.000000
物理學 線代 111.0 82.333333
高數 115.0 78.666667
統計學 線代 107.0 71.000000
高數 122.0 74.000000
計算機 線代 122.0 78.333333
高數 137.0 74.000000
stacked.unstack(level=1)
科目 線代 高數
專業
數學與應用數學 及格人數 107.000000 107.000000
平均分 76.000000 65.000000
物理學 及格人數 111.000000 115.000000
平均分 82.333333 78.666667
統計學 及格人數 107.000000 122.000000
平均分 71.000000 74.000000
計算機 及格人數 122.000000 137.000000
平均分 78.333333 74.000000
stacked.unstack(level=0)
專業 數學與應用數學 物理學 統計學 計算機
科目
線代 及格人數 107.0 111.000000 107.0 122.000000
平均分 76.0 82.333333 71.0 78.333333
高數 及格人數 107.0 115.000000 122.0 137.000000
平均分 65.0 78.666667 74.0 74.000000

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢