熱線電話:13121318867

登錄
首頁大數據時代pandas是如何檢測和處理缺失數據的?
pandas是如何檢測和處理缺失數據的?
2020-07-17
收藏

我們都知道pandas 是一款功能強大的python庫,基于Numpy,支持高性能的矩陣運算,通常在數據挖掘和數據分析領域應用較多,但是pandas 數據清洗功能也不能忽視,今天小編就為大家分享pandas是如何檢測和處理缺失數據的。

一、缺失值是什么?

缺失值是指粗糙數據中由于缺少信息而造成的數據的聚類、分組、刪失或截斷。它指的是現有數據集中某個或某些屬性的值是不完全的。通常按照數據缺失機制,可分為以下幾種:

1.可忽略的缺失

(1)完全隨機缺失 MCAR全稱:missing completely at random,顧名思義,指的是數據的缺失是隨機的,與已觀察到的和未觀察到的數據無關

(2)隨機缺失MAR,全稱:missing at random,該類數據的缺失依賴于其他完全變量

2.不可忽略的缺失NIM(全稱:non-ignorable missing ) 或者非隨機缺失,這種數據的缺失既依賴于完全變量又依賴于不完全變量本身

二、判斷是否有缺失值

1.創建數據

import pandas as pd

import numpy as np

data = pd.DataFrame({'a': [1. 2. 4. np.nan,7. 9], 'b': ['a', 'b', np.nan, np.nan, 'd', 'e'], 'c': [np.nan, 0. 4. np.nan, np.nan, 5], 'd': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]})

a    b    c   d

0  1.0    a  NaN NaN

1  2.0    b  0.0 NaN

2  4.0  NaN  4.0 NaN

3  NaN  NaN  NaN NaN

4  7.0    d  NaN NaN

5  9.0    e  5.0 NaN

2.判斷是否有缺失值及統計

print(data.isnull().any())

a    True

b    True

c    True

d    True

print(data.isnull().sum())  #t統計每一列的缺失值個數

a    1

b    2

c    3

d    6

三、pandas缺失值處理一般采用兩種方法

1.刪除;

pandas缺失值處理最原始的方法,pandas刪除缺失值,通常通過dropna的方法,使用dropna的前提是,缺失值的類型必須是np.nan

刪除缺失值為np.nan的所在行

movie.dropna()

參數說明:

axis 參數用于控制行或列,跟其他不一樣的是,axis=0 (默認)表示操作行,axis=1 表示操作列。

how 參數可選的值為 any(默認) 或者 all。any 表示一行/列有任意元素為空時即丟棄,all 一行/列所有值都為空時才丟棄。

subset 參數表示刪除時只考慮的索引或列名。

thresh參數的類型為整數,它的作用是,比如 thresh=3.會在一行/列中至少有 3 個非空值時將其保留。

2.填充。

最常見的是使用 fillna 完成填充。

data.fillna(0)

除了可以使用標量來填充之外,還可以使用前一個或后一個有效值來填充。

設置參數 method=‘pad’ 或 method=‘ffill’ 可以使用前一個有效值來填充。

設置參數 method=‘bfill’ 或 method=‘backfill’ 可以使用后一個有效值來填充。

3.替換。

有時候,某些異常值也會被當做缺失值來處理,可以使用 replace 方法來替換缺失值。

比如:  user_info.replace({“age”: 40. “birth”: pd.Timestamp(“1978-08-08”)}, np.nan) #將年齡40替換 日期為1978-08-08也替換

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢