inplace参数的取值:True、False
True:直接修改原对象
False:创建一个副本,修改副本,原对象不变(缺省默认)
method参数的取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default None
pad/ffill:用前一个非缺失值去填充该缺失值
backfill/bfill:用下一个非缺失值填充该缺失值
None:指定一个值去替换缺失值(缺省默认这种方式)
limit参数:限制填充个数
axis参数:修改填充方向
-
#导包
-
import pandas
as pd
-
import numpy
as np
-
from numpy
import nan
as NaN
-
df1=pd.DataFrame([[
1,
2,
3],[
NaN,
NaN,
2],[
NaN,
NaN,
NaN],[
8,
8,
NaN]])
-
df1
代码结果:
-
#一、不指定method参数
-
-
#1.用常数填充
-
print (df1.fillna(
100))
-
print (
"-----------------------")
-
print (df1)
运行结果:
-
#2.用字典填充
-
df1.fillna({
0:
10,
1:
20,
2:
30})
运行结果:
-
#二、指定inplace参数
-
-
print (df1.fillna(
0,inplace=
True))
-
print (
"-------------------------")
-
print (df1)
运行结果:
-
#三、指定method参数
-
-
df2 = pd.DataFrame(np.random.randint(
0,
10,(
5,
5)))
-
df2.iloc[
1:
4,
3] = NaN
-
df2.iloc[
2:
4,
4] = NaN
-
df2
运行结果:
-
#1.method =
'ffill'/
'pad':用前一个非缺失值去填充该缺失值
-
-
df2.fillna(method=
'ffill')
运行结果:
-
#2.method =
'bflii'/
'backfill':用下一个非缺失值填充该缺失值
-
-
df2.fillna(method=
'bfill')
运行结果:
-
#四、指定limit参数
-
-
#用下一个非缺失值填充该缺失值
-
#只填充2个
-
-
df2.fillna(method=
'bfill',
limit=2)
运行结果:
-
#五、指定axis参数
-
-
df2.fillna(method=
"ffill",
limit=1, axis=1)
运行结果: