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())
;
) 或 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())
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())
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_sql
是 pd.read_sql_query
和 pd.read_sql_table
的通用接口。如果您只想讀取一整個資料表,也可以使用 pd.read_sql_table('users', engine)
,更為簡潔。
總結
Pandas 將讀取不同來源資料的複雜性,簡化為一系列以 pd.read_*
開頭的函式,讓我們能用相似的邏輯應對各種情況。掌握這些函式,是踏上資料分析師之路的堅實第一步。現在,就找出你手邊的資料檔,試著用一行 Pandas 程式碼將它喚醒吧!