Python 如何輸入我的資料集
全面指南:使用 Python 載入和處理資料集的多種方法
三個關鍵要點
- 多樣的資料輸入來源: Python 支援從標準輸入、文件、資料庫以及網絡多種來源載入資料集。
- 強大的第三方庫: 使用如 pandas 和 numpy 等庫,可輕鬆處理和分析各類結構化和非結構化資料。
- 高效的數據處理: 針對大規模資料集,Python 提供了分塊讀取和優化內存使用的技巧,確保高效運行。
1. 使用標準輸入與多行輸入
1.1 使用 input() 函數
最基礎的方法是使用 input() 函數來獲取使用者輸入的資料。這種方法適用於小規模和交互式的程序。
data = input("請輸入數據:")
print(f"你輸入的數據是:{data}")
1.2 讀取多行輸入
若需輸入多行資料,可使用迴圈來持續接收輸入,直到使用者輸入空行為止。
print("請輸入多行數據,輸入空行結束:")
data = []
while True:
line = input()
if not line:
break
data.append(line)
print("你輸入的多行數據是:", data)
2. 從文件中讀取資料
2.1 讀取 CSV 文件
CSV 文件是最常見的數據格式之一,Python 提供了多種方法來讀取和處理 CSV 資料。
使用內建 csv 模組
import csv
with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
headers = next(reader, None) # 如果有標頭,跳過
for row in reader:
print(row)
使用 pandas 庫
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
2.2 讀取 TXT 文件
TXT 文件適合存儲純文本資料,可以通過多種方式讀取。
使用內建 open() 函數
with open('data.txt', 'r', encoding='utf-8') as file:
for line in file:
line = line.strip() # 去除換行符
print(line)
使用 pandas 庫
import pandas as pd
df = pd.read_csv('data.txt', sep='\t') # 假設使用制表符分隔
print(df.head())
2.3 讀取 JSON 文件
JSON 文件常用於存儲結構化資料,特別是雙層或多層嵌套的數據。
使用內建 json 模組
import json
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
print(data)
使用 pandas 庫
import pandas as pd
df = pd.read_json('data.json')
print(df.head())
2.4 讀取 Excel 文件
Excel 文件廣泛用於商業和科研領域,Python 提供了強大的支持來讀取和處理 Excel 資料。
使用 pandas 庫
import pandas as pd
# 讀取第一個工作表
df = pd.read_excel('data.xlsx')
print(df.head())
# 指定工作表名稱
df_sheet2 = pd.read_excel('data.xlsx', sheet_name='Sheet2')
print(df_sheet2.head())
3. 使用第三方庫處理資料
3.1 使用 pandas 庫
pandas 是 Python 最流行的數據分析庫之一,提供了高效且靈活的資料處理功能。
導入和使用 pandas
import pandas as pd
# 讀取 CSV 文件
df = pd.read_csv('data.csv')
# 查看前幾行資料
print(df.head())
# 基本數據描述
print(df.describe())
3.2 使用 NumPy 庫
NumPy 主要用於數值計算,特別適合處理大型數組和矩陣資料。
導入和使用 NumPy
import numpy as np
# 讀取純數值資料
data = np.loadtxt('data.txt')
print(data)
# 處理 CSV 文件,並處理缺失值
data_csv = np.genfromtxt('data.csv', delimiter=',')
print(data_csv)
3.3 使用 Seaborn 載入內建資料集
Seaborn 提供了多個內建的範例資料集,方便進行數據可視化和分析。
import seaborn as sns
# 載入內建的 'iris' 資料集
dataset = sns.load_dataset('iris')
print(dataset.head())
3.4 使用 Hugging Face datasets 函式庫
Hugging Face 的 datasets 函式庫提供了豐富的線上和本地資料集,適用於機器學習和自然語言處理任務。
from datasets import load_dataset
# 載入線上資料集
dataset_online = load_dataset('imdb')
# 載入本地資料集
dataset_local = load_dataset('path/to/local/dataset')
4. 從資料庫導入資料
若資料集儲存在關係型資料庫中,可使用資料庫連接庫來讀取資料。
4.1 使用 SQLite 數據庫
import sqlite3
import pandas as pd
# 建立數據庫連接
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# 執行 SQL 查詢
query = "SELECT * FROM my_table"
df = pd.read_sql(query, conn)
# 查看資料
print(df.head())
# 關閉連接
conn.close()
4.2 使用 SQLAlchemy 庫
SQLAlchemy 是一個功能強大的 SQL 工具包和物件關聯映射(ORM)庫。
from sqlalchemy import create_engine
import pandas as pd
# 建立數據庫引擎
engine = create_engine('sqlite:///example.db')
# 定義 SQL 查詢
query = "SELECT * FROM example_table"
# 載入資料
df = pd.read_sql(query, engine)
print(df.head())
5. 從網絡或 API 導入資料
若資料存放在網上,可以使用相關庫直接從 URL 或 API 獲取資料。
5.1 使用 pandas 從 URL 讀取 CSV
import pandas as pd
url = "https://example.com/data.csv"
df = pd.read_csv(url)
print(df.head())
5.2 使用 requests 庫從 API 獲取資料
使用 requests 庫可以輕鬆進行 HTTP 請求,獲取 JSON 格式的資料。
import requests
import pandas as pd
response = requests.get('https://api.example.com/data')
if response.status_code == 200:
data = response.json()
df = pd.DataFrame(data)
print(df.head())
else:
print(f"請求失敗,狀態碼:{response.status_code}")
6. 處理大規模資料集
對於大型資料集,需採取專門的方法以優化內存使用和處理速度。
6.1 使用 pandas 的 chunksize 參數
可分批讀取大型 CSV 文件,以減少內存佔用。
import pandas as pd
chunksize = 10000 # 每次讀取 10000 行
chunks = []
for chunk in pd.read_csv('large_data.csv', chunksize=chunksize):
# 處理每個區塊
chunks.append(chunk)
df = pd.concat(chunks, ignore_index=True)
print(df.head())
6.2 使用 Dask 庫進行分佈式計算
Dask 是一個靈活的並行計算庫,適合處理超大規模的資料集。
import dask.dataframe as dd
# 讀取大型 CSV 文件
df = dd.read_csv('very_large_data.csv')
# 進行計算
result = df.groupby('column_name').mean().compute()
print(result)
7. 常見錯誤與解決方法
7.1 文件找不到錯誤
確保文件路徑正確,並檢查當前工作目錄是否正確。
import os
print(os.getcwd()) # 查看當前工作目錄
7.2 編碼錯誤
若出現編碼錯誤,嘗試指定正確的編碼格式,如 utf-8 或 gbk。
df = pd.read_csv('data.csv', encoding='utf-8')
7.3 格式錯誤
檢查文件內容是否符合選擇的格式,例如 CSV 分隔符是否正確。
df = pd.read_csv('data.csv', sep=';') # 使用分號作為分隔符
8. 總結
在 Python 中輸入和處理資料集的方法多種多樣,根據資料的來源、格式和規模選擇合適的方法和工具至關重要。使用內建函數如 input() 和 open() 適合簡單和小規模的資料,而第三方庫如 pandas 和 numpy 則提供了強大而高效的數據處理能力。對於大型資料集,採用分塊讀取和分佈式計算的方法能夠顯著提升性能。此外,處理資料時應注意編碼格式和資料格式的一致性,以避免常見錯誤。總之,靈活運用多種技術和工具,能夠幫助你高效地在 Python 中載入和處理各類資料集。
參考資料
Last updated January 28, 2025