pandas学习之df.fillna

pandas学习之df.fillna

df.fillna主要用来对缺失值进行填充,可以选择填充具体的数字,或者选择临近填充。

官方文档

DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

解释

  1. 构建实例
import numpy as np
import pandas as pd
df = pd.DataFrame([[np.nan,22,23,np.nan],[31,np.nan,12,34],[np.nan,np.nan,np.nan,23],
[15,17,66,np.nan]],columns=list('ABCD'))
df


	A		B		C		D
0	NaN		22.0	23.0	NaN
1	31.0	NaN		12.0	34.0
2	NaN		NaN		NaN		23.0
3	15.0	17.0	66.0	NaN
  1. value:scalar,series,dict,dataframe
    填充的值,可以是一个标量,或者字典等
df.fillna(value=1)#缺失值填充为1
	A		B		C		D
0	1.0		22.0	23.0	1.0
1	31.0	1.0		12.0	34.0
2	1.0		1.0		1.0		23.0
3	15.0	17.0	66.0	1.0
------------------------------------------
df.fillna(value={'A':2,'B':3})# 传入一个字典,指定某列填充的具体值
	A		B		C		D
0	2.0		22.0	23.0	NaN
1	31.0	3.0		12.0	34.0
2	2.0		3.0		NaN		23.0
3	15.0	17.0	66.0	NaN
  1. method:{backfill,bfill,pad,ffill,none},default none
    填充的方法,backfill和bfill代表填充后侧值,ffill和pad填充空值前侧值
df.fillna(method='ffill')#向前填充,注意此处默认参数axis=0,所以空值是填充上一行的数据,而不是前一列。

	A		B		C		D
0	NaN		22.0	23.0	NaN
1	31.0	22.0	12.0	34.0
2	31.0	22.0	12.0	23.0
3	15.0	17.0	66.0	23.0
  1. axis
    控制行列的参数,用法和其他方法完全相同
  2. inplace
    是否将结果赋值给原变量,和其他方法里的用法相同
  3. limit:int 或None
    向前或后填充的最大数量,必须是大于0的整数
    如果指定了method参数,则连续空值值填充前int个
    如果未指定method参数,则只填充所在轴上的前int空值
	A		B		C		D#原数据
0	NaN		22.0	23.0	NaN
1	31.0	NaN		12.0	34.0
2	NaN		NaN		NaN		23.0
3	15.0	17.0	66.0	NaN

df.fillna(value=0,axis=1,limit=1)#在ABCD列上,每列只填充第一个空值
	A		B		C		D
0	0.0		22.0	23.0	0.0
1	31.0	0.0		12.0	34.0
2	NaN		NaN		0.0		23.0
3	15.0	17.0	66.0	NaN

加油

你可能感兴趣的:(pandas,python,数据分析)