iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
佛心分享-IT 人自學之術

AI 時代下的自學革命:30 天打造高效 IT 知識庫與實戰力系列 第 13 篇

Day 13|AI 輔助數據分析:用 Python + Pandas 快速進行資料清洗與視覺化

  • 分享至 

  • xImage
  •  

前言
歡迎來到鐵人賽的第三週!在經歷了第一週的「個人知識庫搭建」與第二週的「AI 輔助軟體開發」後,本週我們將焦點轉向 「數據處理、工作流自動化與生產力整合」。

在現代 IT 與企業環境中,數據無處不在——從伺服器 Log、使用者行為日誌到營運報表。然而,資料分析前最耗時的往往是「資料清洗(Data Cleaning)」。今天我們將探討如何利用 LLM 搭配 Python 數據分析雙雄——Pandas 與 Matplotlib/Seaborn,讓 AI 成為你的高效率 Data Analyst!

一、AI 數據分析的全新模式:Copilot for Data Science
傳統數據分析流程中,我們需要手動撰寫大量繁瑣的 Pandas 指令(如 groupby, pivot_table, merge)並處理各種缺值與異常值。

結合 AI 後,數據分析模式轉變為:

描述目標(Prompting): 用自然語言說明資料結構與你想要分析的業務問題。

自動生成程式碼(Code Generation): AI 生成對應的 Pandas 處理腳本。

成果驗證與視覺化(Insight & Visualization): 執行腳本並讓 AI 解讀產出的數據圖表。

二、實戰 1:讓 AI 幫你處理雜亂無章的原始資料 (Data Cleaning)
假設我們有一份包含缺失值、日期格式不一與字串雜訊的 CSV 檔:

💡 提示詞 (Prompt):
「我有一份 sales_data.csv 檔案,欄位包含 order_id, date, customer_email, price, status。
請寫一段 Python Pandas 腳本進行以下清洗工作:

處理缺失值:刪除 order_id 為空的列,將 price 的缺失值填入該欄位的中位數。

統一日期格式為 YYYY-MM-DD。

將 status 欄位中的英文字母全部轉為大寫並去除前後空格。

剔除 price <= 0 的異常值。」

🤖 AI 產出的 Python 腳本:
Python
import pandas as pd
import numpy as np

1. 讀取資料

df = pd.read_csv('sales_data.csv')

2. 清洗資料

刪除 order_id 缺失值

df = df.dropna(subset=['order_id'])

填補 price 中位數

median_price = df['price'].median()
df['price'] = df['price'].fillna(median_price)

剔除異常價格

df = df[df['price'] > 0]

統一日期格式

df['date'] = pd.to_datetime(df['date'], errors='coerce').dt.strftime('%Y-%m-%d')

清洗 status 字串

df['status'] = df['status'].astype(str).str.strip().str.upper()

print("資料清洗完成,剩餘筆數:", len(df))
print(df.head())
三、實戰 2:一鍵生成視覺化圖表 (Data Visualization)
清洗好資料後,下一步是將數據轉化為易懂的圖表。

💡 提示詞 (Prompt):
「請使用 seaborn 與 matplotlib 繪製圖表:

計算每月總銷售額(price 的加總)趨勢折線圖。

設定圖表標題為 『Monthly Sales Trend』,並加入網格線。

確保 X 軸日期標籤不會重疊(旋轉 45 度)。」

🤖 AI 產出的繪圖程式碼:
Python
import matplotlib.pyplot as plt
import seaborn as sns

轉為日期型態並依月份分組

df['year_month'] = pd.to_datetime(df['date']).dt.to_period('M')
monthly_sales = df.groupby('year_month')['price'].sum().reset_index()
monthly_sales['year_month'] = monthly_sales['year_month'].astype(str)

設定風格與畫布大小

plt.figure(figsize=(10, 5))
sns.set_theme(style="whitegrid")

繪製折線圖

ax = sns.lineplot(x='year_month', y='price', data=monthly_sales, marker='o', color='b', linewidth=2.5)

圖表美化

plt.title('Monthly Sales Trend', fontsize=14, fontweight='bold')
plt.xlabel('Month', fontsize=12)
plt.ylabel('Total Sales ($)', fontsize=12)
plt.xticks(rotation=45)
plt.tight_layout()

plt.show()
四、進化技巧:用 Code Interpreter / Advanced Data Analysis 直接對話
如果你不想本機執行程式碼,也可以直接使用 ChatGPT (Advanced Data Analysis) 或 Gemini 的 Code Execution 功能:

直接上傳 CSV/Excel 檔案。

提問:「請幫我分析這份資料中,退貨率最高的產品類別是什麼?並畫出柱狀圖。」

AI 會在後台自動執行 Python 腳本並直接將結論與圖表呈現在視窗中!

五、AI 數據分析的避坑指南
資料隱私 (Data Privacy): 上傳任何數據至公有 AI 平台前,務必先行去識別化(Anonymization),移除姓名、身分證字號與敏感財務資料。

統計陷阱(Garbage in, Garbage out): AI 雖然擅長算數與繪圖,但商業邏輯與對特徵值(Outliers)的定義仍需要領域專家(Domain Expert)來引導與驗證。

結語
過往需要半天時間整理的 Excel 報表與繪圖,現在透過 Python + AI 可以在 10 分鐘內搞定。這讓工程師與資料分析師能將更多精力放在「從數據中發現商業價值(Insights)」上。

明天(Day 14),我們將探討近來非常熱門的 No-Code / Low-Code 自動化工具:「自動化工作流:結合 n8n / Make 與 AI API 打造無程式碼自動化流水線」,我們明天見!


上一篇
Day 12|第二週階段性總結:打造 AI 驅動的軟體開發全流程(從需求到上線)
下一篇
Day 14|自動化工作流:結合 n8n / Make 與 AI API 打造無程式碼自動化流水線
系列文
AI 時代下的自學革命:30 天打造高效 IT 知識庫與實戰力 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言