[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


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


119會員
200內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
本文主要介紹如何使用pandas來查看、新增、修改資料。 [Python ]pandas讀取寫入CSV 與Excel文件 [Python ]資料分析工具pandas基礎介紹 本文將使用kaggle平台上的數據資料來實作說明。 基本操作 查看資料 df.head():顯示前5行數據。
在 Python 中,可以使用多種方法來去除字串中的空白字元,以下是幾種常見的方法: 固定位置型 使用 strip() 方法 strip() 方法會去除字串前後的空白字元(包括空格、換行、製表符號等)。
有別於正則表達式符號的難以理解,有其他簡單的方式也可以來處理字串的問題。 本文主要介紹其他方法用於處理字串,尋找字串中的關鍵字與其他操作。 [Python]Re正則表達式中常用符號的重點整理 字串方法(String Methods) Python 提供了多種內建的字串方法,可以替代某些簡單
紀錄一些,實用的re正則表達式需要用時,就可以直接複製貼上。 檢查是否有中文字
當使用正則表達式(Regular Expressions, Regex)時,不同的符號和構造具有特定的含義,這些符號和模式可以用來構建靈活且強大的文本匹配規則。 以下是正則表達式中常用符號的重點整理: 字元類別 (Character Classes) [abc]: 匹配 a、b 或 c 中
接續上一篇文章,使用kaggle平台上的數據資料來實作說明。 [Python ]pandas基本操作,查看、新增、修改資料 用 pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數
本文主要介紹如何使用pandas來查看、新增、修改資料。 [Python ]pandas讀取寫入CSV 與Excel文件 [Python ]資料分析工具pandas基礎介紹 本文將使用kaggle平台上的數據資料來實作說明。 基本操作 查看資料 df.head():顯示前5行數據。
在 Python 中,可以使用多種方法來去除字串中的空白字元,以下是幾種常見的方法: 固定位置型 使用 strip() 方法 strip() 方法會去除字串前後的空白字元(包括空格、換行、製表符號等)。
有別於正則表達式符號的難以理解,有其他簡單的方式也可以來處理字串的問題。 本文主要介紹其他方法用於處理字串,尋找字串中的關鍵字與其他操作。 [Python]Re正則表達式中常用符號的重點整理 字串方法(String Methods) Python 提供了多種內建的字串方法,可以替代某些簡單
紀錄一些,實用的re正則表達式需要用時,就可以直接複製貼上。 檢查是否有中文字
當使用正則表達式(Regular Expressions, Regex)時,不同的符號和構造具有特定的含義,這些符號和模式可以用來構建靈活且強大的文本匹配規則。 以下是正則表達式中常用符號的重點整理: 字元類別 (Character Classes) [abc]: 匹配 a、b 或 c 中
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
透過簡單的舉例,分享從原始資料到洞察發現的完整過程,包括資料清洗、特徵工程、探索性資料分析,以及如何根據分析結果提出具體建議。
Thumbnail
作為一名擁有多年經驗的數據分析師,我深知數據分析的重要性及其對企業決策的影響。然而,數據分析並不是在任何情況下都適用。今天我想跟你聊的事情是:在數據量不足或缺乏流程優化目的時,進行數據分析的局限性。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有在欄位quantity的缺失值填補為0。 題目的原文敘述 測試範例 Example 1: Input:+-----------------+----------+-------+ | nam
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表name欄位為檢查基準,刪除有缺失值None的 data rows。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ | s
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表email欄位為比較基準,刪除重複的列 data rows,只保留最早第一次出現的。 題目的原文敘述 Example 1: Input: +-------------+---------+--------
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
透過簡單的舉例,分享從原始資料到洞察發現的完整過程,包括資料清洗、特徵工程、探索性資料分析,以及如何根據分析結果提出具體建議。
Thumbnail
作為一名擁有多年經驗的數據分析師,我深知數據分析的重要性及其對企業決策的影響。然而,數據分析並不是在任何情況下都適用。今天我想跟你聊的事情是:在數據量不足或缺乏流程優化目的時,進行數據分析的局限性。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們在原有的資料表上,將所有在欄位quantity的缺失值填補為0。 題目的原文敘述 測試範例 Example 1: Input:+-----------------+----------+-------+ | nam
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表name欄位為檢查基準,刪除有缺失值None的 data rows。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ | s
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表email欄位為比較基準,刪除重複的列 data rows,只保留最早第一次出現的。 題目的原文敘述 Example 1: Input: +-------------+---------+--------