[Python]pandas資料探索與清理_處理缺失值

更新於 發佈於 閱讀時間約 1 分鐘

為了讓資料更適合進行後續的分析、建立模型,模型的決策準確性,資料探索與清理資料分析過程中非常重要的步驟,主要目的在於確保資料的品質和可靠性。

因為前幾篇的例子中的資料,並沒有缺失值與重複值的部分,我另外找了一份有包含的資料來做案例分析,由於找到的資料沒有重複值的部分,故本文主要解釋處理缺失值的部分,重複值再另外找一份有包含重複值的資料,在來解釋如何處理重複值的。


要對資料進行探索和清理,通常會進行以下幾個步驟:

  1. 了解資料結構
    • 查看資料的前幾行和資料摘要,以了解資料的結構、類型和缺失值情況。
  2. 處理缺失值
    • 根據需要填補或移除缺失值。
  3. 處理重複值
    • 檢查並移除重複的資料列。
  4. 資料類型轉換
    • 確保每個欄位的資料類型正確,如數值型、日期型等。
  5. 資料清理與轉換
    • 處理異常值,將資料標準化或正規化,並進行其他必要的轉換。
  6. 資料篩選與篩查
    • 根據探索結果篩選出有用的欄位與資料列。

案例分析

了解資料結構

import pandas as pd

df = pd.read_excel('Ditry Data Sample.xlsx')

# 顯示數據完整資訊
print(df.info())

從Non-Null Count這一列來看,是有存在空值的,也就是缺失值。

raw-image

查看是否有缺失值或重複值

# 檢查是否有缺失值
print(df.isnull().sum())
raw-image

缺失值是資料分析過程中常見的問題,處理缺失值的方法主要取決於缺失值的數量、分佈以及資料集的特性,對於某些特定的資料集缺失值可能是極具有意義的,例如在某些業務情境中,缺失本身可能代表特定的行為模式。(可能是不能回答)

常見的缺失值處理方法:

移除缺失值

  • 刪除含有缺失值的列 (dropna):當缺失值數量較少且不會影響分析結果時,可以選擇直接刪除含有缺失值的整列數據。
# 刪除含有缺失值的列
df_cleaned = df.dropna()
# 顯示被刪除後的資訊
print(df_cleaned.info())

此份資料刪除有缺失值的列,只少一筆資料,若這筆資料不是那麼重要,那麼刪除不會影響後續模型的結果。

raw-image


  • 刪除含有缺失值的欄位:如果某個欄位中大部分數據都缺失,這個欄位可能對分析沒有太大價值,可以直接刪除。
# 刪除包含缺失值的欄位
df_cleaned = df.dropna(axis=1)
print(df_cleaned.info())

此份資料刪除包含缺失值的欄位,結果Spending_USD則被刪除了,所以要用其他方法來處理缺失值。

raw-image

填補缺失值

  • 用統計量填補
    • 均值填補:使用該欄位的平均值填補缺失值,適用於數值型資料。
    • 中位數填補:使用該欄位的中位數填補,適用於資料有異常值或偏態的情況。
    • 眾數填補:使用該欄位的眾數填補,適用於類別型資料。
  • 插值法 (interpolation):對於時間序列資料或具有順序性的資料,可以使用插值方法根據已知值預測缺失值。
  • 前向填充與後向填充 (ffillbfill):用前一個有效值或後一個有效值填補缺失值,適用於時間序列資料。
  • 機器學習模型預測:利用回歸或分類模型預測並填補缺失值,這種方法較為複雜,但在某些情況下效果更好。

先找出缺失值那行的資料

# 找出有缺失值的行
rows_with_missing = df[df.isnull().any(axis=1)]

# 只顯示有缺失值的列
columns_with_missing = rows_with_missing.loc[:, df.isnull().any()]
print(columns_with_missing)
# 根據上面找到是在271行有缺失值
print(df.iloc[271])
raw-image

原來是在2020年Great Britain少了一筆資料,那我們把Great Britain印出來來看,要用什麼方法處理缺失值比較恰當。

Great_Britain_data = df[df['Country'] == 'Great Britain']
print(Great_Britain_data)
raw-image

由上面的資料來看,根據資料會隨著時間的變化,我們可以用插值法 (Interpolation)來補缺失值,也可以使用其他模型來預測,但這樣會相對複雜許多。

import pandas as pd

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

# 插值法填補
df.interpolate(method='linear', inplace=True)

Great_Britain_data = df[df['Country'] == 'Great Britain']
print(Great_Britain_data)

這樣就順利的補了2020年這筆資料了。

raw-image


後續在找有什麼資料,可以在說明更多補缺失值的方法,或者別人是怎麼做的案例。


留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
146會員
253內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2024/09/14
生成器表達式是 Python 中一種更簡潔的語法,專門用來創建生成器。它的語法與列表生成式類似,但將列表生成式中的方括號 [] 替換為小括號 ()。生成器表達式與生成器函數類似,具有「惰性評估」的特性,因此它只在需要時才生成元素,從而節省記憶體。 生成器的「惰性評估」(也叫延遲求值)指的是生成器不
Thumbnail
2024/09/14
生成器表達式是 Python 中一種更簡潔的語法,專門用來創建生成器。它的語法與列表生成式類似,但將列表生成式中的方括號 [] 替換為小括號 ()。生成器表達式與生成器函數類似,具有「惰性評估」的特性,因此它只在需要時才生成元素,從而節省記憶體。 生成器的「惰性評估」(也叫延遲求值)指的是生成器不
Thumbnail
2024/09/01
包含著日期型資料在許多不同領域的分析中都非常重要,特別是當數據涉及隨時間變化的趨勢、模式或週期時,例如房價,股票價格分析等等。 如何將一個日期欄位改為 DataFrame 的索引,你可以使用 set_index() 方法。 實作範例數據來源 處理步驟 確保日期欄位是 datetime
Thumbnail
2024/09/01
包含著日期型資料在許多不同領域的分析中都非常重要,特別是當數據涉及隨時間變化的趨勢、模式或週期時,例如房價,股票價格分析等等。 如何將一個日期欄位改為 DataFrame 的索引,你可以使用 set_index() 方法。 實作範例數據來源 處理步驟 確保日期欄位是 datetime
Thumbnail
2024/08/29
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
Thumbnail
2024/08/29
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News