Python :用pandas函式庫讀寫外部資料

Pandas 資料分析第一步:輕鬆讀取 CSV, Excel, JSON, SQL 各式檔案

Pandas 資料分析第一步:輕鬆讀取 CSV, Excel, JSON, SQL 各式檔案

一個包含各種圖表與數據的資料分析儀表板

在數據分析的廣闊世界中,Python 的 Pandas 套件無疑是最強大的瑞士刀。而所有分析專案的起點,都是同一個關鍵步驟:將您的資料讀取到程式中。無論您的資料儲存在簡單的 CSV 文字檔、複雜的 Excel 工作表,還是網路 API 的 JSON 格式,Pandas 都提供了簡潔而統一的指令,讓您能輕鬆將它們載入為強大的 DataFrame 格式,開啟您的分析之旅。

這篇文章將作為您的入門指南,詳細介紹 Pandas 中最常用的四大 read_* 函式家族,幫助您跨出資料分析的第一步。

事前準備:安裝必要的 Python 套件

在開始之前,請確保您已經安裝了 Pandas。若您還需要處理 Excel 或 SQL 資料,建議一併安裝對應的輔助套件。

打開您的終端機或命令提示字元,輸入以下指令:

# 安裝 Pandas 核心套件
pip install pandas

# 若要讀取 Excel 檔案,建議安裝 openpyxl
pip install openpyxl

# 若要從 SQL 資料庫讀取,需安裝對應的引擎,例如 SQLAlchemy
pip install sqlalchemy

Pandas 讀取資料的核心:四大家族

在所有範例中,我們都遵循一個慣例:import pandas as pd,將 pandas 縮寫為 pd,這是資料科學界的通用做法。

1. 讀取 CSV 檔案:pd.read_csv()

CSV (Comma-Separated Values) 是最常見的資料儲存格式,它是一種純文字檔,用逗號來分隔每一欄的資料。

程式碼範例:

import pandas as pd

# 讀取名為 'students.csv' 的檔案
# 檔名需要用引號包圍,成為一個字串
df_csv = pd.read_csv('students.csv')

# 使用 .head() 查看前五筆資料,確認讀取成功
print("從 CSV 讀取的資料:")
print(df_csv.head())
進階小提示: 如果您的 CSV 檔案不是用逗號分隔,而是用分號 (;) 或 Tab (\t),您可以使用 sep 參數來指定分隔符,例如:pd.read_csv('data.txt', sep='\t')

2. 讀取 Excel 檔案:pd.read_excel()

對於商業環境中常見的 .xlsx.xls 檔案,Pandas 也能輕鬆應對。

程式碼範例:

import pandas as pd

# 讀取名為 'sales_report.xlsx' 的 Excel 檔案
df_excel = pd.read_excel('sales_report.xlsx')

# 查看前五筆資料
print("\n從 Excel 讀取的資料:")
print(df_excel.head())
進階小提示: 一個 Excel 檔可能包含多個工作表 (Sheet)。您可以使用 sheet_name 參數來指定要讀取哪一個工作表,例如:pd.read_excel('sales.xlsx', sheet_name='月份銷售額')pd.read_excel('sales.xlsx', sheet_name=1) (讀取第二個工作表)。

3. 讀取 JSON 檔案:pd.read_json()

JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式,廣泛應用於網路 API 和 NoSQL 資料庫中。

程式碼範例:

import pandas as pd

# 讀取名為 'products.json' 的 JSON 檔案
df_json = pd.read_json('products.json')

# 查看前五筆資料
print("\n從 JSON 讀取的資料:")
print(df_json.head())
進階小提示: JSON 格式多樣,有時需要 orient 參數來幫助 Pandas 正確解析。例如,如果 JSON 的格式是 {'index': {'row1':...}, 'columns': {'col1':...}},您可能需要使用 pd.read_json('data.json', orient='split')

4. 讀取 SQL 資料庫:pd.read_sql()

直接從資料庫中撈取資料是資料分析師的日常。Pandas 可以與多種資料庫引擎結合,透過 SQL 查詢語句直接將結果轉換為 DataFrame。

程式碼範例:

import pandas as pd
from sqlalchemy import create_engine

# 建立資料庫連線引擎 (以 SQLite 為例)
# 連線字串會因不同資料庫而異 (PostgreSQL, MySQL...)
engine = create_engine('sqlite:///mydatabase.db')

# 定義你的 SQL 查詢語句
query = "SELECT user_id, user_name, registration_date FROM users WHERE status = 'active';"

# 從 SQL 資料庫讀取資料
df_sql = pd.read_sql(query, engine)

# 查看前五筆資料
print("\n從 SQL 資料庫讀取的資料:")
print(df_sql.head())
進階小提示: pd.read_sqlpd.read_sql_querypd.read_sql_table 的通用接口。如果您只想讀取一整個資料表,也可以使用 pd.read_sql_table('users', engine),更為簡潔。

總結

Pandas 將讀取不同來源資料的複雜性,簡化為一系列以 pd.read_* 開頭的函式,讓我們能用相似的邏輯應對各種情況。掌握這些函式,是踏上資料分析師之路的堅實第一步。現在,就找出你手邊的資料檔,試著用一行 Pandas 程式碼將它喚醒吧!

較新的 較舊