pandas学习之df.fillna
df.fillna主要用来对缺失值进行填充,可以选择填充具体的数字,或者选择临近填充。
官方文档
DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
解释
构建实例:
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
value:scalar,series,dict,dataframe 填充的值,可以是一个标量,或者字典等
df
.fillna
(value
=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
method:{backfill,bfill,pad,ffill,none},default none 填充的方法,backfill和bfill代表填充后侧值,ffill和pad填充空值前侧值
df
.fillna
(method
='ffill')
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
axis: 控制行列的参数,用法和其他方法完全相同inplace: 是否将结果赋值给原变量,和其他方法里的用法相同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)
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
加油