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

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檔案
import pandas as pd
data = pd.read_csv('Trending Youtube Videos 2019 to 2020.csv')
df = pd.DataFrame(data)
df

讀取網站的表格
以本期的發票為例試試看,請進入網站:https://invoice.etax.nat.gov.tw/
使用pd.read_html()可以讀取網站裡的所有表格。
適用於靜態表格的讀取,複雜的比較建議用beautifulsoup 或 selenium 進行爬取。
data = pd.read_html('https://zh.wikipedia.org/zh-tw/%E5%8D%97%E6%9E%81%E6%B4%B2')
data
可以用index來選擇要的表格做成Dataframe
df = pd.DataFrame(data[1]) #第2個表格
df
使用open data的網站讀取API
這會是我們課程中最常使用到的方式,課堂中盡量不花時間在資料擷取,因為擷取完還要做清理,分析...時間會花太長,同學可以自行上網練習。
我們以桃園的open data為例,使用即時自行車資料
https://data.tycg.gov.tw/opendata/datalist/datasetMeta?oid=5ca2bfc7-9ace-4719-88ae-4034b9a5a55c
通常為json檔案,我們以pd.read_json()讀取。
data = pd.read_json('http://data.tycg.gov.tw/api/v1/rest/datastore/a1b4714b-3b75-4ff8-a8f2-cc377e4eaa0f?format=json&limit=500')
data
透過Dataframe的格式更好解析資料結構,會發現桃園總共有162個站點,每個站點存在records這個欄位中,因此我們呼叫對應的欄位取出要的資料
df = pd.DataFrame(data['result']['records'])
df
以上,簡單介紹這幾種可以讀取資料的方式。
這邊有個使用GPT的練習,仔細觀察你會發現上面出現的資料只有100筆而非meta data描述的162筆,為什麼?怎麼解決?
我們這次就到這邊吧,回家用GPT試看看,大家掰掰。
版權聲明
文章標題:第三週資料科學-Pandas讀取資料
文章作者:阿盧老師
文章連結:https://codinglu.tw/blog/pandas-read-data
授權條款:本文採用 CC BY-NC 4.0 授權。轉載請標明出處。