Ask me anything
Ithy Logo
Sign in to save

Python 如何輸入我的資料集

全面指南:使用 Python 載入和處理資料集的多種方法

python data processing

三個關鍵要點

  • 多樣的資料輸入來源: 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

AI-assisted research. Sources, methodology and corrections · Source-checked guides and tools · Explore published answers

Ask Ithy AI