CodeGym /課程 /Python SELF TW /資料格式化與清理表格中的冗餘資訊

資料格式化與清理表格中的冗餘資訊

Python SELF TW
等級 28 , 課堂 2
開放

1. 為什麼這很重要?

想像一下你是個資料工廠的工程師。你的工作是分析和組織原料(資料),以生產出最終產品(洞察、報告)。如果不清理和格式化,這些資料就像一堆散落的零件,難以拼湊出什麼東西。

乾淨且格式化的資料不僅僅是美觀和可閱讀的問題,它還是進行正確分析和建立模型的重要條件。處理不當的資料可能會導致錯誤的結論,沒有人希望在下班前才發現你算出來的不是員工的平均年齡,而是一些散落的數據碎片。

主要的格式化任務

在開始編寫程式碼之前,讓我們來看看我們想要通過格式化解決並避免的問題:

  • 刪除空行與空欄: 它們就像空口袋——沒有任何用處,但可能會讓人困惑。
  • 移除重複值: 重複的記錄會給資料帶來噪聲。
  • 填補缺失值: 就像奶酪中的洞,有時候需要用些好吃的東西填補一下。
  • 轉換資料類型: 確保年齡是數字而不是文字,這樣就不會把真正的年齡和 "25 年工作經驗" 的描述混淆在一起。

2. 用於清理和格式化資料的工具

現在我們知道這些事情為什麼重要了,讓我們看看有哪些工具可以助我們一臂之力,就像瑞士軍刀在野外一樣:

  • 移除空值: dropna()
  • 處理重複值: duplicated()drop_duplicates()
  • 填補缺失值: fillna()
  • 轉換資料類型: astype()

移除空值

空值總是在不應該出現的時候冒出來。使用 dropna(),我們可以把它們像舊襪子一樣丟掉。讓我們來看個例子:

Python

import pandas as pd

# 創建帶有缺失值的 DataFrame
data = {'姓名': ['安娜', '伊凡', None, '瑪麗亞'],
        '年齡': [29, None, 34, 23],
        '城市': ['莫斯科', '聖彼得堡', '新西伯利亞', None]}

df = pd.DataFrame(data)

# 刪除包含任何 NaN 值的行
cleaned_df = df.dropna()

print(cleaned_df)

這段程式碼會刪除所有包含至少一個空值的行。

處理重複值

有時候你的資料裡會有重複值,像是玩 "找不同" 的遊戲,結果什麼都沒找到。我們可以用 drop_duplicates() 來剔除這些記錄。

Python

# 創建帶有重複值的 DataFrame
data = {'姓名': ['安娜', '伊凡', '安娜', '瑪麗亞'],
        '年齡': [29, 34, 29, 23]}

df = pd.DataFrame(data)

# 刪除重複值
unique_df = df.drop_duplicates()

print(unique_df)

填補缺失值

填補空值的方法有很多,比如用平均值或固定值。fillna() 方法正是能幫助你完成這件事的工具:

Python

# 用列的平均值填補 '年齡' 中的缺失值
df['年齡'] = df['年齡'].fillna(df['年齡'].mean())

print(df)

轉換資料類型

有時候需要轉換資料類型,避免落入 "應該是數字,但實際是文字" 的坑裡:

Python

# 將 '年齡' 欄位的資料類型轉換為整數
df['年齡'] = df['年齡'].astype(int)

print(df)

3. 實際應用:清理真實資料集

現在我們來試著清理和格式化一個真實的資料集,讓它適合用於報告分析。比如,一個假設的包含銷售資訊的 Excel 檔案。

Python

# 從 Excel 載入資料
filename = "sales_data.xlsx"
df = pd.read_excel(filename)

# 刪除任一欄位有缺失值的行
df = df.dropna()

# 刪除重複的記錄
df = df.drop_duplicates()

# 根據列的平均值填補缺失值
df['銷售額'] = df['銷售額'].fillna(df['銷售額'].mean())

# 轉換資料類型
df['產品編號'] = df['產品編號'].astype(str)

# 將格式化後的資料保存為 Excel
df.to_excel("cleaned_sales_data.xlsx", index=False)

最終,我們會得到一個乾淨整潔的 Excel 文件,可以用於分析和生產報告。

4. 清理數據時的常見錯誤

就像修電器一樣,處理數據總有可能出錯,所以這裡總結了一些常見錯誤,避免踩坑:

刪除重複值時,不小心把有用的資訊也丟了。有時候重複值可能是數據中某些錯誤的信號,需要進一步追溯它們的來源。小心數據類型的混淆。看起來簡單的格式轉換可能會導致數據丟失,因此在進行轉換前務必確認它是可行的。

遵循這些建議並採取上述步驟,你將能輕鬆且愉快地與數據打交道,即使它們一開始像分析師的噩夢一樣糟糕。記住,數據就像你的程式碼一樣,應該保持乾淨!

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION