【机器学习杂烩篇】pandas fillna()函数详解

inplace参数的取值:True、False

True:直接修改原对象

False:创建一个副本,修改副本,原对象不变(缺省默认)

method参数的取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default None

pad/ffill:用前一个非缺失值去填充该缺失值

backfill/bfill:用下一个非缺失值填充该缺失值

None:指定一个值去替换缺失值(缺省默认这种方式)

limit参数:限制填充个数

axis参数:修改填充方向

 


   
   
   
   
  1. #导包
  2. import pandas as pd
  3. import numpy as np
  4. from numpy import nan as NaN

   
   
   
   
  1. df1=pd.DataFrame([[ 1, 2, 3],[ NaN, NaN, 2],[ NaN, NaN, NaN],[ 8, 8, NaN]])
  2. df1

代码结果:

 

一、不指定任何参数

1.  用常数填充


   
   
   
   
  1. #一、不指定method参数
  2. #1.用常数填充
  3. print (df1.fillna( 100))
  4. print ( "-----------------------")
  5. print (df1)

运行结果:


2.  用字典填充


   
   
   
   
  1. #2.用字典填充
  2. df1.fillna({ 0: 10, 1: 20, 2: 30})

运行结果:

 

二、指定inplace参数


   
   
   
   
  1. #二、指定inplace参数
  2. print (df1.fillna( 0,inplace= True))
  3. print ( "-------------------------")
  4. print (df1)

运行结果:

 

三、指定method参数

1.method = 'ffill'/'pad':用前一个非缺失值去填充该缺失值


   
   
   
   
  1. #三、指定method参数
  2. df2 = pd.DataFrame(np.random.randint( 0, 10,( 5, 5)))
  3. df2.iloc[ 1: 4, 3] = NaN
  4. df2.iloc[ 2: 4, 4] = NaN
  5. df2

运行结果:


   
   
   
   
  1. #1.method = 'ffill'/ 'pad':用前一个非缺失值去填充该缺失值
  2. df2.fillna(method= 'ffill')

运行结果:

 

2.method = 'bflii'/'backfill':用下一个非缺失值填充该缺失值


   
   
   
   
  1. #2.method = 'bflii'/ 'backfill':用下一个非缺失值填充该缺失值
  2. df2.fillna(method= 'bfill')

运行结果:

 

四、指定limit参数


   
   
   
   
  1. #四、指定limit参数
  2. #用下一个非缺失值填充该缺失值
  3. #只填充2个
  4. df2.fillna(method= 'bfill', limit=2)

运行结果: 

 

五、指定axis参数


   
   
   
   
  1. #五、指定axis参数
  2. df2.fillna(method= "ffill", limit=1, axis=1)

运行结果:

 

你可能感兴趣的:(机器学习杂烩篇)