iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
AI & Data

30天輕鬆搞定資料分析系列 第 11

DAY-11 資料處理(2):處理缺失值、重複值

  • 分享至 

  • xImage
  •  

Pandas提供了多種方法來處理缺失值(Missing Values)和重覆值(Duplicate Values)。來試試看一些常用的技巧:

缺失值

數據中的某些項目或特徵沒有被正確填寫、紀錄,導致值未知或不存在

  1. 偵測缺失值:用isna()或isnull()方法來偵測DataFrame或Series中的缺失值。
import pandas as pd

data = {'A': [1, 2, None, 4], 'B': [5, None, 7, 8]}
df = pd.DataFrame(data)

print(df.isna())

https://ithelp.ithome.com.tw/upload/images/20230920/201617059uHVqvBjjC.png
2. 去除缺失值:用dropna()來刪除包含缺失值的行、列。

import pandas as pd

data = {'A': [1, 2, None, 4], 'B': [5, None, 7, 8]}
df = pd.DataFrame(data)

print(df.isna())

cleaned_df = df.dropna()

print(cleaned_df)

https://ithelp.ithome.com.tw/upload/images/20230920/20161705GdUtMAR0CG.png
3. 填補缺失值:用fillna()來填補。

import pandas as pd

data = {'A': [1, 2, None, 4], 'B': [5, None, 7, 8]}
df = pd.DataFrame(data)

print(df.isna())

cleaned_df = df.dropna()

print(cleaned_df)

https://ithelp.ithome.com.tw/upload/images/20230920/20161705ufNAZJk4Rt.png

重複值

數據中某些項目或觀察值在數據中出現多次,可能是因為數據錯誤、提取錯誤導致。

  1. 偵測重複值:用duplicated()方法來偵測。
  2. 刪除重複值:用drop_duplicates()方法來刪除。
import pandas as pd

data = {'A': [1, 2, 2, 4], 'B': [5, 7, 7, 8]}
df = pd.DataFrame(data)

deduplicated_df = df.drop_duplicates()

print(deduplicated_df)

https://ithelp.ithome.com.tw/upload/images/20230920/201617051y1n2aWIiF.png
https://ithelp.ithome.com.tw/upload/images/20230920/20161705mn80UOsBlQ.png

現在我們匯入一筆資料來看看實際的效果:

from google.colab import files
uploaded = files.upload()
import io
import pandas as pd
df = pd.read_excel('test.xlsx')
print(len(df))
df.head(21)

https://ithelp.ithome.com.tw/upload/images/20230920/20161705h3qXjHGCHG.png
偵測缺失值,然後刪除含有缺失值的資料,再來也可以填補缺失的資料:

print(df.isna())

cleaned_df = df.dropna()
filled_df = df.fillna(0)

print()
print(cleaned_df)
print()
print(filled_df)

會看到結果如下:
https://ithelp.ithome.com.tw/upload/images/20230920/20161705bQeTFSqeqA.png
https://ithelp.ithome.com.tw/upload/images/20230920/20161705CVb30G5vvf.png
再來稍微修改一下資料,只留下兩行有重複值,然後偵測出重複值,並把重複值刪除:

duplicate_rows = df2.duplicated()
print(duplicate_rows)

print()

deduplicated_df2 = df2.drop_duplicates()
print(deduplicated_df2)

https://ithelp.ithome.com.tw/upload/images/20230920/201617056AuygkWKYY.png
以上就是處理缺失值跟重複值的簡單應用,再來明天會繼續介紹更多技巧!


上一篇
DAY-10 資料處理(1):使用Pandas資料庫
下一篇
DAY-12 資料處理(3):Pandas應用
系列文
30天輕鬆搞定資料分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言