目標:
1.不同年度的電影的最高分及平均分數
2.不同類型電影,近幾年的最高及平均分數
電影名稱 年份 分數
0 A電影 2020 54
1 B電影 2020 90
2 C電影 2020 58
3 A電影 2021 53
4 B電影 2021 66
5 C電影 2021 82
6 A電影 2022 85
7 B電影 2022 75
8 C電影 2022 56
mport pandas as pd
movie = pd.DataFrame([
['A電影', 2020, 54],
['B電影', 2020, 90],
['C電影', 2020, 58],
['A電影', 2021, 53],
['B電影', 2021, 66],
['C電影', 2021, 82],
['A電影', 2022, 85],
['B電影', 2022, 75],
['C電影', 2022, 56],
], columns=['電影名稱', '年份', '分數'])
print(movie)
執行結果:
電影名稱 年份 分數
0 A電影 2020 54
1 B電影 2020 90
2 C電影 2020 58
3 A電影 2021 53
4 B電影 2021 66
5 C電影 2021 82
6 A電影 2022 85
7 B電影 2022 75
8 C電影 2022 56
pivot_table_1 = pd.pivot_table(
movie, index='年份', values='分數', aggfunc={'分數': ['max', 'mean']}
)
print(pivot_table_1)
執行結果:
max mean
年份
2020 90 67.333333
2021 82 67.000000
2022 85 72.000000
pivot_table() 函數的 index 參數指定行標籤,values 參數指定分析欄位,aggfunc 參數指定統計項目。
使用 「年份」作為行標籤, 「分數」作為分析欄位,aggfunc 參數指定 max 和 mean 兩個統計項目。
recent_years = [2020, 2021, 2022]
pivot_table_2 = pd.pivot_table(
movie.loc[movie['年份'].isin(recent_years)],
index='電影名稱',
values='分數',
aggfunc={'分數': ['max', 'mean']})
print(pivot_table_2)
執行結果:
max mean
電影名稱
A電影 85 64.000000
B電影 90 77.000000
C電影 82 65.333333
使用 「電影名稱 」作為行標籤, 「分數」作為分析欄位,aggfunc 參數指定 max 和 mean 兩個統計項目。我們還使用 loc 函數來過濾出近幾年的數據。
完成~