當前位置:成語大全網 - 新華字典 - python填充缺失值

python填充缺失值

對於大多數情況而言,fillna方法是最主要的函數。通過壹個常數調用fillna就會將缺失值替換為那個常數值。

fillna(value)

參數:value

說明:用於填充缺失值的標量值或字典對象

#通過常數調用fillna

書寫方式:df.fillna(0) #用0替換缺失值

#通過字典調用fillna

書寫方式:df.fillna({1:0.5,3:-1})

fillna(value,inplace=True)

參數:inplace

說明:修改調用者對象而不產生副本

#總是返回被填充對象的引用

書寫方式:df.fillna(0,inplace=True)

fillna(method=ffill)

參數:method

說明:插值方式。如果函數調用時未指定其他參數的話,默認為“ffill”

對reindex有效的那些插值方法也可用於fillna:

In [23]: from numpy import nan as NA

In [21]: df=DataFrame(np.random.randn(6,3))

In [24]: df.ix[2:,1]=NA;df.ix[4:,2]=NA

In [25]: df

Out[25]:

0 1 2

0 -0.863925 1.005127 -0.529901

1 0.701671 -0.501728 -0.617387

2 -0.951060 NaN -0.263626

3 0.810230 NaN -0.277401

4 -0.403899 NaN NaN

5 -0.081091 NaN NaN

In [26]: df.fillna(method='ffill')

Out[26]:

0 1 2

0 -0.863925 1.005127 -0.529901

1 0.701671 -0.501728 -0.617387

2 -0.951060 -0.501728 -0.263626

3 0.810230 -0.501728 -0.277401

4 -0.403899 -0.501728 -0.277401

5 -0.081091 -0.501728 -0.277401

fillna(limit=2)

參數:limit

說明:(對於前向和後向填充)可以連續填充的最大數量

In [27]: df.fillna(method='ffill',limit=2)

Out[27]:

0 1 2

0 -0.863925 1.005127 -0.529901

1 0.701671 -0.501728 -0.617387

2 -0.951060 -0.501728 -0.263626

3 0.810230 -0.501728 -0.277401

4 -0.403899 NaN -0.277401

5 -0.081091 NaN -0.277401

fillna(data.mean())

只要稍微動動腦子,就可以利用fillna實現許多別的功能。比如說,可以傳入Series的平均值或中位數:

In [28]: data=Series([1,NA,3.5,NA,7])

In [29]: data.fillna(data.mean())