數(shù)據(jù)分析-數(shù)據(jù)清理流程二

下面我們通過一個(gè)簡單例子來梳理數(shù)據(jù)清理步驟,也可以直接打開我的項(xiàng)目查看源代碼;

1.收集數(shù)據(jù)

首頁我們要加載項(xiàng)目里的數(shù)據(jù)集,代碼如下:

import pandas as pd
df = pd.read_csv('animals.csv')

2.評估數(shù)據(jù)

在這一步我們需要查看數(shù)據(jù)集數(shù)據(jù)來評估數(shù)據(jù)集,評估數(shù)據(jù)集可通過多種方法結(jié)合評估數(shù)據(jù),通常有head()、info()、describe()、value_counts()、sum()、duplicated();當(dāng)然這只是簡單評估方法,在比較復(fù)雜的情景下,可能需要查詢數(shù)據(jù)某個(gè)字段的是否有缺失值,或者某些字段在某種情況才有異常值,需要單獨(dú)刷選出來檢查,或者是在某個(gè)時(shí)間段的數(shù)據(jù)有問題,不同情況不同分析評估。

本例子比較簡單,我們這里只需要用head()來評估數(shù)據(jù)就行,代碼如下:


評估數(shù)據(jù)

從上圖我們可以看出數(shù)據(jù)集存在以下質(zhì)量問題,我們記錄下來:

質(zhì)量

  • 每個(gè)動(dòng)物名稱前面的 bb
  • 體重和腦重量中小數(shù)點(diǎn)使用 ! 而不是 .

3.清理數(shù)據(jù)

清理數(shù)據(jù)前,我要copy一份數(shù)據(jù)進(jìn)行清理

df_clean = df.copy()

在這里我們就要通過上個(gè)流程說的步驟來進(jìn)行清理數(shù)據(jù),如果有不清楚的可以會(huì)看我上個(gè)流程寫的內(nèi)容(清理流程一)

定義

  • 使用字符串分割,刪除每個(gè)動(dòng)物名稱前面的 'bb'
  • 在體重和腦重量兩列,將 ! 替換為 .

代碼

# 使用字符串分割,刪除每個(gè)動(dòng)物名稱前面的 'bb' 
df_clean['Animal'] = df_clean['Animal'].str[2:]

# 在體重和腦重量兩列,將 ! 替換為 . 
df_clean['Body weight (kg)'] = df_clean['Body weight (kg)'].str.replace('!', '.')
df_clean['Brain weight (g)'] = df_clean['Brain weight (g)'].str.replace('!', '.')

測試

重新使用head() 查看數(shù)據(jù)集是否清理好

df_clean.Animal.head()
清理后數(shù)據(jù)

注意:代碼在這里我們數(shù)據(jù)清理步驟已完成,在這里大家也可以把清理步驟使用多個(gè)定義、代碼 和 測試 標(biāo)題來進(jìn)行清理,為什么呢?因?yàn)椋覀償?shù)據(jù)往往不止質(zhì)量問題,也有可能有整潔度問題,實(shí)際上,你可以立即進(jìn)行定義、編碼和測試。如果你需要清理許多質(zhì)量和整潔度問題呢?使用多個(gè)定義、代碼 和 測試 標(biāo)題這種順序來清理一個(gè)一個(gè)的問題,這樣結(jié)構(gòu)就比較清晰,也不容易忽略某個(gè)問題。

下面我們重新清理,上面評估出的問題有2個(gè),下面我們使用2個(gè)定義、代碼 和 測試來進(jìn)行清理數(shù)據(jù),

清理2

- 每個(gè)動(dòng)物名稱前面的 bb

定義

使用字符串分割,刪除每個(gè)動(dòng)物名稱前面的 'bb' 。

代碼
df_clean['Animal'] = df_clean['Animal'].str[2:]
測試
df_clean.Animal.head()

- 體重和腦重量中小數(shù)點(diǎn)使用 ! 而不是 .

定義

在體重和腦重量兩列,將 ! 替換為 .

代碼
df_clean['Body weight (kg)'] = df_clean['Body weight (kg)'].str.replace('!', '.')
df_clean['Brain weight (g)'] = df_clean['Brain weight (g)'].str.replace('!', '.')
測試
df_clean.Animal.head()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容