所有文章

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

1,2934 分鐘閱讀
資料科學AIpython
第三週資料科學-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檔案

python
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 進行爬取。

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

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

python
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()讀取。

python
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這個欄位中,因此我們呼叫對應的欄位取出要的資料

python
df = pd.DataFrame(data['result']['records'])
df
Image

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

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

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

版權聲明

文章標題:第三週資料科學-Pandas讀取資料

文章作者:阿盧老師

文章連結:https://codinglu.tw/blog/pandas-read-data

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