所有文章

資料科學二三週實戰練習-你知道周杰倫最紅的歌是哪一首嗎?

1,8355 分鐘閱讀
資料科學AIpython
資料科學二三週實戰練習-你知道周杰倫最紅的歌是哪一首嗎?

前言

利用上兩週的操作,我們將在Kaggle下載一些資料集來進行實戰練習,以此篇為例我下載了「Spotify and Youtube」統計Spotify 藝人的前 10 首熱門歌曲以及他們在 YouTube 上的影片的統計數據。

你也可以試試看「2019年最流行的Youtube影片」

若想下載其他的,可在Dataset進行尋找

Image

此外,建議可以搭配ChatGPT,完成自己想要的任務

資料匯入

在Kaggle下載好資料集後,使用Google Colab 連接雲端資料夾

Image

使用pd.read_csv() 可以直接讀取csv檔,並轉換成Dataframe

不過在這個資料集因為含有很多國家的歌手,在文字編碼各不相同(我的猜測),所以我請ChatGPT做了額外的檔案處理

因為我想保留資料是utf-8編碼(避免中文亂碼),略過會發生錯誤的資料列

python
#載入pandas
import pandas as pd
#載入雲端硬碟csv檔, read_csv()
with open('/content/drive/MyDrive/0714研習/Spotify_Youtube.csv', 'r', encoding='utf-8', errors='ignore') as file:
    df = pd.read_csv(file,on_bad_lines='skip')
df
Image

資料欄位分析

確定有些什麼欄位,還有欄位的格式,方便我之後運算

python
df.info()
Image

在Kaggle資料集也有對欄位的介紹,不過透過這可以看到,Views(Youtube的觀看數)的型態是Object,還有資料有26449筆,但Views只有25829筆

分析前處理

二三週還沒講到分析前的處理,但我偷跑讓資料更好分析,畢竟真實資料集通常會「髒髒的」

空資料刪除

我初步想法是做跟觀看數有關的,於是我先把沒有觀看的資料列刪除,使用dropna

python
df.dropna(inplace=True)
df.info()
Image

刪除完後可以看到資料變成24557筆

資料型態轉換

Views(Youtube的觀看數)的型態是Object,透過astype(float) 做轉換

python
df['Views'] = df['Views'].astype(float)
df['Views']
Image

資料分析(EDA)

EDA 是 Exploratory Data Analysis(探索性資料分析)的縮寫。它是一種初步分析資料集的方法,旨在通過視覺化、統計摘要和資料轉換等技術手段來發現資料的結構、模式、異常值和潛在的關聯。

抓取想要的欄位

我先將我要的資料列出來分別是「藝人」、「歌名」、「專輯」、「Youtube觀看」、「Spotify串流次數」,並存在另一個表中,避免我的原本的資料還有需要使用

python
df_view = df[['Artist','Track','Album','Views','Stream']]
df_view
Image

其中1.04e+09代表10的九次方也就是10.04億次收聽

流量排序

這也還沒講,可以使用GPT試看看

單純是因為我不知道篩選一首歌的流量,怎樣算是多?於是我把流量高到低進行排序

使用sort_values()進行排序而裡面的by代表要排序的欄位,ascending代表是否要由小到大

再使用head() 列出前100筆資料(預設為5筆)

python
df_view.sort_values(by='Views', ascending=False,inplace=True)
df_view.head(100)
Image

可以看出此資料集Youtube最高觀看80億(應該是2022或2023的資料),Spotify串流有15億次收聽

有趣的是Ed Sheeran串流30幾億但Youtube只有59億

資料篩選

最後我篩選出高於十億收看的歌曲,共有***首呢?

python
#超過十億次觀看有幾首
df_view[df_view['Views']>10**9]
Image

使用len() 看出列數,總共390首歌,這樣多嗎?

消費台灣

最後想到,那我們亞洲巨星周杰倫的歌在世界上如何呢?

python
df_view[df_view['Artist']=='Jay Chou']
Image

這首七年前(以2024年來說)的告白氣球,資料集是2.4億次觀看(2024年為2.5億次觀看)

可以發現要達到10億是一個多了不起的數字啊

但同時可以想想,前幾年有個新聞,如果一首歌它有1億觀看,真實性又有多少?(我沒有偷臭)可能是個好的研究議題,下週見吧XD

版權聲明

文章標題:資料科學二三週實戰練習-你知道周杰倫最紅的歌是哪一首嗎?

文章作者:阿盧老師

文章連結:https://codinglu.tw/blog/which-is-Jay-Chou-famous-song

授權條款:本文採用 CC BY-NC 4.0 授權。轉載請標明出處。