第三週資料科學-Pandas讀取資料

使用Pandas,我們可以輕鬆從網路上取得資料,包括csv、excel檔案以及網站表格。透過Kaggle等網站下載資料集,開始資料分析之旅。另外,也可透過讀取Open data網站的API取得即時資料。記得觀察資料格式,處理資料的同時也要注意資料量是否符合預期。挑戰自己,嘗試解決問題,享受數據分析的樂趣!

Pandas 取得資料

我們會用簡單的方式在網路上取得資料,分別為讀取檔案(csv, excel),讀取網站的表格(html),讀取Open data網站的API(json檔)

我們先試從Kaggle下載一個資料集:

https://www.kaggle.com/datasets/salvatorerastelli/spotify-and-youtube/data

Kaggle提供很多很好的練習資料集,並可以從中探索高手都如何進行資料分析,沒事可以多看看。不過,今天先著重在如何讀檔就好!

讀取csv檔案

可以利用pd.read_csv()讀取csv檔案,pd.read_excel()讀取excel檔案

1
2
3
4
5
import pandas as pd
data = pd.read_csv('Trending Youtube Videos 2019 to 2020.csv')
df = pd.DataFrame(data)
df

Image

讀取網站的表格

以本期的發票為例試試看,請進入網站:https://invoice.etax.nat.gov.tw/
使用pd.read_html()可以讀取網站裡的所有表格。
適用於靜態表格的讀取,複雜的比較建議用beautifulsoup 或 selenium 進行爬取。

1
2
data = pd.read_html('https://zh.wikipedia.org/zh-tw/%E5%8D%97%E6%9E%81%E6%B4%B2')
data

Image

可以用index來選擇要的表格做成Dataframe

1
2
df = pd.DataFrame(data[1]) #第2個表格
df

Image

使用open data的網站讀取API

這會是我們課程中最常使用到的方式,課堂中盡量不花時間在資料擷取,因為擷取完還要做清理,分析…時間會花太長,同學可以自行上網練習。
我們以桃園的open data為例,使用即時自行車資料
https://data.tycg.gov.tw/opendata/datalist/datasetMeta?oid=5ca2bfc7-9ace-4719-88ae-4034b9a5a55c
通常為json檔案,我們以pd.read_json()讀取。

1
2
data = pd.read_json('http://data.tycg.gov.tw/api/v1/rest/datastore/a1b4714b-3b75-4ff8-a8f2-cc377e4eaa0f?format=json&limit=500')
data

Image

透過Dataframe的格式更好解析資料結構,會發現桃園總共有162個站點,每個站點存在records這個欄位中,因此我們呼叫對應的欄位取出要的資料

1
2
df = pd.DataFrame(data['result']['records'])
df

Image

以上,簡單介紹這幾種可以讀取資料的方式。

這邊有個使用GPT的練習,仔細觀察你會發現上面出現的資料只有100筆而非meta data描述的162筆,為什麼?怎麼解決?

我們這次就到這邊吧,回家用GPT試看看,大家掰掰。


第三週資料科學-Pandas讀取資料
https://codinglu.tw/2024/09/pandas-read-data/
作者
阿盧
發布於
2024年9月13日
許可協議
📌 本文瀏覽量: 0