pandas速成筆記(5)-快速分析平均值、總和


上篇繼續,記得小時候讀書那會兒,還沒有雙減,每次考試完,大家最關心的就是全班的成績分布,假如有下面一張成績表:

老師們通常很快就會算出『平均分、總分』這些關鍵指標,然后各班之間,就開始攀比:

當然,這些在Excel里用SUM/AVERAGE函數,再結合自動填充很容易實現,pandas里要如何類似統計呢?

import pandas as pd

# 注意:先不要設置索引(否則最后append時會有問題)
score = pd.read_excel("./data/test.xlsx")
print(score)

# 把各科分數列先取出來
temp = score[['語文', '數學', '科學', '英語']]
print("\n--------各科分數--------")
print(temp)

# 原表上,新增總分、平均分列,並按行統計
score["總分"] = temp.sum(axis=1)
score["平均分"] = temp.mean(axis=1)
print("\n--------每行添加[總分,平均分]--------")
print(score)

# 按列計算平均分
col_avg = score[['語文', '數學', '科學', '英語', '總分', '平均分']].mean()
# 將得到的Serial追加到score表
score = score.append(col_avg, ignore_index=True)
print("\n--------最終結果-------")
print(score)

結果:

   學號  語文  數學  科學  英語
0  張三  85  90  88  92
1  李四  78  86  90  82
2  王五  95  96  89  80
3  趙六  70  75  99  67
4  楊七  95  93  84  91

--------各科分數--------
   語文  數學  科學  英語
0  85  90  88  92
1  78  86  90  82
2  95  96  89  80
3  70  75  99  67
4  95  93  84  91

--------每行添加[總分,平均分]--------
   學號  語文  數學  科學  英語   總分    平均分
0  張三  85  90  88  92  355  88.75
1  李四  78  86  90  82  336  84.00
2  王五  95  96  89  80  360  90.00
3  趙六  70  75  99  67  311  77.75
4  楊七  95  93  84  91  363  90.75

--------最終結果-------
    學號    語文    數學    科學    英語     總分    平均分
0   張三  85.0  90.0  88.0  92.0  355.0  88.75
1   李四  78.0  86.0  90.0  82.0  336.0  84.00
2   王五  95.0  96.0  89.0  80.0  360.0  90.00
3   趙六  70.0  75.0  99.0  67.0  311.0  77.75
4   楊七  95.0  93.0  84.0  91.0  363.0  90.75
5  NaN  84.6  88.0  90.0  82.4  345.0  86.25


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM