Python學習筆記:數據清洗之缺失值填充fillna


在數據建模過程中,針對入模的數據需做數據清洗,特別針對缺失數據。

缺失數據比較多的情況下,可以考慮直接刪除;缺失數據較少的情況下,可對數據進行填充。

此時,fillna() 則派上用場。語法為:

fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
# inplace=True 直接修改原對象 缺省False
# method取值:pad、ffill、backfill、bfill、None 缺省None
	# pad/ffill:用前一個非缺失值填充
    # backfill/bfill:用后一個非缺失值填充
# limit:限制填充個數
# axis:修改填充方向

創建測試數據框:

import pandas as pd
import numpy as np
from numpy import nan
data = pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[0:2, 0:3] = nan
print(data)
'''
    0   1   2   3
a   3   4   5   6
b   7   8   9  10
c  11  12  13  14
d  15  16  17  18
      0     1     2   3
a   NaN   NaN   NaN   6
b   NaN   NaN   NaN  10
c  11.0  12.0  13.0  14
d  15.0  16.0  17.0  18
'''
  • 用0填充
data.fillna(0)
  • 用每列特征的均值填充
data.fillna(data.mean())
  • 用每列特征的中位數填充
data.fillna(data.median())
  • 用相鄰后面(back)特征填充前面缺失值
data.fillna(method='bfill')
  • 用相鄰前面(before)特征填充后面空值
import pandas as pd
import numpy as np
from numpy import nan
data = pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[1:2, 0:3] = nan
print(data)
data.fillna(method='pad')
  • 利用字典對不同列填充不同值
values = {0:10, 1:20, 2:30} # 列名:填充值
data.fillna(value=values)
  • 控制填充個數
data.fillna(method='bfill', limit=2)
  • 按行填充
data.fillna(method='ffill', limit=1, axis=1)

參考鏈接:fillna()函數詳解

參考鏈接:Python 數據清洗之缺失數據填充fillna()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM