中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用Python進行數據清洗

發布時間:2022-03-16 09:50:19 來源:億速云 閱讀:195 作者:iii 欄目:web開發

這篇文章主要介紹“如何用Python進行數據清洗”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何用Python進行數據清洗”文章能幫助大家解決問題。

數據清洗是數據分析的必備環節,在進行分析過程中,會有很多不符合分析要求的數據,例如重復、錯誤、缺失、異常類數據。

01 重復值處理

數據錄入過程、數據整合過程都可能會產生重復數據,直接刪除是重復數據處理的主要方法。pandas提供查看、處理重復數據的方法duplicated和drop_duplicates。以如下數據為例:

>sample = pd.DataFrame({'id':[1,1,1,3,4,5],

                       'name':['Bob','Bob','Mark','Miki','Sully','Rose'],

                       'score':[99,99,87,77,77,np.nan],

                       'group':[1,1,1,2,1,2],})

>sample

group  id   name  score

0      1   1    Bob   99.0

1      1   1    Bob   99.0

2      1   1   Mark   87.0

3      2   3   Miki   77.0

4      1   4  Sully   77.0

5      2   5   Rose    NaN

發現重復數據通過duplicated方法完成,如下所示,可以通過該方法查看重復的數據。

>sample[sample.duplicated()]

group  id   name  score

1      1   1    Bob   99.0

需要去重時,可drop_duplicates方法完成:

>sample.drop_duplicates()

group  id   name  score

0      1   1    Bob   99.0

2      1   1   Mark   87.0

3      2   3   Miki   77.0

4      1   4  Sully   77.0

5      2   5   Rose    NaN

drop_duplicates方法還可以按照某列去重,例如去除id列重復的所有記錄:

>sample.drop_duplicates('id')

group  id   name  score

0      1   1    Bob   99.0

3      2   3   Miki   77.0

4      1   4  Sully   77.0

5      2   5   Rose    NaN

02 缺失值處理

缺失值是數據清洗中比較常見的問題,缺失值一般由NA表示,在處理缺失值時要遵循一定的原則。

首先,需要根據業務理解處理缺失值,弄清楚缺失值產生的原因是故意缺失還是隨機缺失,再通過一些業務經驗進行填補。一般來說當缺失值少于20%時,連續變量可以使用均值或中位數填補;分類變量不需要填補,單算一類即可,或者也可以用眾數填補分類變量。

當缺失值處于20%-80%之間時,填補方法同上。另外每個有缺失值的變量可以生成一個指示啞變量,參與后續的建模。當缺失值多于80%時,每個有缺失值的變量生成一個指示啞變量,參與后續的建模,不使用原始變量。

在下圖中展示了中位數填補缺失值和缺失值指示變量的生成過程。

Pandas提供了fillna方法用于替換缺失值數據,其功能類似于之前的replace方法,例如對于如下數據:

> sample

    group  id   name  score

0    1.0  1.0    Bob   99.0

1    1.0  1.0    Bob    NaN

2    NaN  1.0   Mark   87.0

3    2.0  3.0   Miki   77.0

4    1.0  4.0  Sully   77.0

5    NaN  NaN    NaN    NaN

分步驟進行缺失值的查看和填補如下:

1. 查看缺失情況

在進行數據分析前,一般需要了解數據的缺失情況,在Python中可以構造一個lambda函數來查看缺失值,該lambda函數中,sum(col.isnull())表示當前列有多少缺失,col.size表示當前列總共多少行數據:

>sample.apply(lambda col:sum(col.isnull())/col.size)

group    0.333333

id       0.166667

name     0.166667

score    0.333333

dtype: float64

2. 以指定值填補

pandas數據框提供了fillna方法完成對缺失值的填補,例如對sample表的列score填補缺失值,填補方法為均值:

>sample.score.fillna(sample.score.mean())

0    99.0

1    85.0

2    87.0

3    77.0

4    77.0

5    85.0

Name: score, dtype: float64

當然還可以以分位數等方法進行填補:

>sample.score.fillna(sample.score.median())

0    99.0

1    82.0

2    87.0

3    77.0

4    77.0

5    82.0

Name: score, dtype: float64

3. 缺失值指示變量

pandas數據框對象可以直接調用方法isnull產生缺失值指示變量,例如產生score變量的缺失值指示變量:

>sample.score.isnull()

0    False

1     True

2    False

3    False

4    False

5     True

Name: score, dtype: bool

若想轉換為數值0,1型指示變量,可以使用apply方法,int表示將該列替換為int類型。

>sample.score.isnull().apply(int)

0    0

1    1

2    0

3    0

4    0

5    1

Name: score, dtype: int64

關于“如何用Python進行數據清洗”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹰潭市| 涟源市| 资阳市| 肥西县| 古浪县| 建德市| 响水县| 郓城县| 社旗县| 建始县| 乌审旗| 启东市| 景宁| 镇雄县| 腾冲县| 綦江县| 开封县| 门头沟区| 阿勒泰市| 泸定县| 福贡县| 无为县| 尉犁县| 大悟县| 资中县| 佛学| 建湖县| 南漳县| 富民县| 余姚市| 桐乡市| 盘山县| 张家港市| 昭平县| 南岸区| 斗六市| 开封市| 寻甸| 达孜县| 镇雄县| 木兰县|