iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

我與熊貓Pandas相處的日子系列 第 22

Day22- 資料分析(5)電影樞紐

  • 分享至 

  • xImage
  •  

目標:
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
  1. 不同年度的電影的最高分及平均分數
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 兩個統計項目。

  1. 不同類型電影,近幾年的最高及平均分數
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 函數來過濾出近幾年的數據。

完成~ /images/emoticon/emoticon58.gif


上一篇
Day21- 資料分析(4)樞紐分析
下一篇
Day23- 資料分析(6)績效分析
系列文
我與熊貓Pandas相處的日子30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言