[Python]自動化數據清理csv資料

文、意如

當你拿到一份雜亂的 Excel 或 CSV 資料時,傳統做法是手動刪減,但學過Python 基礎語法後,你可以利用 Pandas 快速達成。

測試csv檔建立:

import pandas as pd
import numpy as np

# 建立模擬數據
data = {
    'order_id': [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008],
    'customer_name': ['Alice', 'Bob', 'Charlie', 'David', None, 'Eve', 'Frank', 'Grace'],
    'product': ['Smartphone', 'USB Cable', 'Monitor', 'Laptop', 'Mouse', 'Keyboard', 'Webcam', 'Tablet'],
    'price': [15000, 450, np.nan, 35000, 800, 1200, None, 12000],
    'order_date': ['2026-03-01', '2026-03-01', '2026-03-02', '2026-03-02', '2026-03-03', '2026-03-03', '2026-03-04', '2026-03-04']
}

# 轉成 DataFrame 並存檔
df_test = pd.DataFrame(data)
df_test.to_csv('sales_data.csv', index=False)
print("測試檔案 sales_data.csv 已成功生成!")

使用程式整理報表

import pandas as pd

# 讀取銷售資料
df = pd.read_csv('sales_data.csv')

# 1. 自動刪除缺失值 2. 篩選金額大於 1000 的訂單
clean_data = df.dropna().query('price > 1000')

# 3. 儲存成新的報表
clean_data.to_csv('cleaned_report.csv', index=False)
print("報表清理完成!")

最終結果:

 

1.第 1003 號訂單:因為 price 是空的 (NaN),會被 dropna() 刪除。
2.第 1002 號與 1005 號訂單:雖然有金額,但因為 price < 1000,會被 query 濾掉。
最終結果:原本 8 筆資料會只剩下 4 筆(Alice, David, Eve, Grace)

 

 

Yiru@Studio - 關於我 - 意如