插值法補齊缺失資料 資料處理 缺失值處理

2021-10-17 02:02:06 字數 1993 閱讀 9710

此文圖方便,就直接輸入資料了。

importpandas as pd

df = pd.dataframe()

1缺失值處理

#如何判斷缺失值

df.isnull() #isna()

df.notnull() #notna()

1.1刪除法

dataframe.dropna(axis=0, how='any', thresh=none, subset=none, inplace=false)

axis:表示軸向。預設為0,表示刪除所有含有空值的行。

how:表示刪除的方式。預設為any。為any的時候,表示只要存在缺失值就刪除。為all的時候,表示全部是缺失值才能刪除。

subset:表示刪除的主鍵,預設為全部。注意,使用任意主鍵均需要將其放入list中。且主鍵和axis對應。

inplace:表示是否對原資料進行操作。預設為false,不對原資料操作。

#刪除第九行

df.fropna(axis=0, how='any', subset=['一班'])

1.2定值替換法

dataframe.fillna(value=none, method=none, axis=none, inplace=false, limit=none, downcast=none)

value:表示傳入的定值。可為某乙個值,dict,series,dataframe。無缺省

method:此引數存在,則不傳入value。表示使用前乙個非空值或後乙個非空值進行缺失值填補。無缺省。

axis:表示軸向。

inplace:表示是否對原資料進行操作。預設為false,不對原資料操作。

limit:表示插補多少次。預設全量插補。

df.fillna(-999)

#分別填補

df.fillna()

#將每一列的空值插補為該列的均值

df.fillna(df.mean())

#用上乙個數值進行填補

df.fillna(method = 'ffill')

1.3插補法

刪除法簡單易行,但是會引起資料結構變動,樣本減少;而替換法使用難度較低,但是會影響資料的標準差,導致資訊量變動。在面對資料缺失問題時,除了這兩種方法之外,還有一種常用的方法——插值法。

#預設是線性插值linear

df.interpolate()

常用的插值法有線性插值、多項式插值、樣條插值等。

線性插值是一種相對來說較為簡單的插值方法,它針對已知的值求出線性方程,通過求解線性方程得到缺失值;

from scipy.interpolate import interp1d #注意這裡是數字1,不是l

num = df['一班'][df['一班'].notnull()] #不為空的資料

linearinsvalue1 = interp1d(linear.index, linear.values, kind='linear')

linearinsvalue1(df['一班'][df['一班'].isnull()].index)

多項式插值是利用已知的值擬合乙個多項式,使得現有的資料滿足這個多項式(拉格朗日插值、牛頓插值等),再利用這個多項式求解缺失值;

from scipy.interpolate importlagrange

laginsvalue= lagrange(linear.index, linear.values) #沒有kind形參

laginsvalue(df['一班'][df['一班'].isnull()].index)

樣條插值是以可變樣條來作出一條經過一系列點的光滑曲線的插值方法,插值樣條由一些多項式組成,每乙個多項式都是由相鄰兩個資料點決定,這樣可以保證兩個相鄰多項式及其導數在連線處連續。

from scipy.interpolate import spline #sp 線#**合為一行了

spline(linear.index, linear.values, xnew=df['一班'][df['一班'].isnull()].index)

資料處理 缺失值處理

資料缺失主要包括記錄缺失和字段資訊缺失等情況,其對資料分析會有較大影響,導致結果不確定性更加顯著 缺失值的處理 刪除記錄 資料插補 不處理 判斷是否有缺失值資料 isnull,notnull isnull 缺失值為true,非缺失值為false notnull 缺失值為false,非缺失值為true...

python,pandas缺失值資料處理

缺失值資料處理方式 1.資料補齊 2.刪除對應資料行 3.不處理 data.csv檔案內容 uft 8編碼 包含全世界所有國家需要用到的字元,英文 用的較多 gbk編碼 包含全部的中文字元 unicode編碼 把所有語言統一到一套編碼 df pd.read csv r c data data.csv...

資料處理之缺失值處理

coding utf 8 概念 由於某些原因,導致資料中的某些列的值缺失,這種情況可能是正常的,也可能是不正常的。我們可以選擇不處理 補齊 或刪除對應的行 dropna函式作用 去除資料結構中值為空的資料。dropna函式語法 dropna from pandas import read csv d...