api参考:
fillna: 使用指定的方法填充 NA/NaN 值。
>>> df = pd.DataFrame[[np.nan, 2, np.nan, 0],[3, 4, np.nan, 1],[np.nan, np.nan, np.nan, 5],[np.nan, 3, np.nan, 4]],columns=list"ABCD"))
>>> dfA B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
3 NaN 3.0 NaN 4
1、用 0 替换所有 NaN 元素。
>>> df.fillna0)A B C D
0 0.0 2.0 0.0 0
1 3.0 4.0 0.0 1
2 0.0 0.0 0.0 5
3 0.0 3.0 0.0 4
2、我们还可以向前或向后传播非空值。
>>> df.fillnamethod="ffill")A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 3.0 4.0 NaN 5
3 3.0 3.0 NaN 4
3、将“A”、“B”、“C”和“D”列中的所有 NaN 元素分别替换为 0、1、2 和 3。
>>> values = {"A": 0, "B": 1, "C": 2, "D": 3}
>>> df.fillnavalue=values)A B C D
0 0.0 2.0 2.0 0
1 3.0 4.0 2.0 1
2 0.0 1.0 2.0 5
3 0.0 3.0 2.0 4
4、只替换第一个 NaN 元素。
>>> df.fillnavalue=values, limit=1)A B C D
0 0.0 2.0 2.0 0
1 3.0 4.0 NaN 1
2 NaN 1.0 NaN 5
3 NaN 3.0 NaN 4
5、使用 DataFrame 填充时,替换沿相同的列名和相同的索引发生
>>> df2 = pd.DataFramenp.zeros4, 4)), columns=list"ABCE"))
>>> df.fillnadf2)A B C D
0 0.0 2.0 0.0 0
1 3.0 4.0 0.0 1
2 0.0 0.0 0.0 5
3 0.0 3.0 0.0 4
6、inplace 如果为 True,则就地填充。默认为 False
# 第一种情况
print df.fillna"missing", inplace=False)A B C D
0 missing 2 missing 0
1 3 4 missing 1
2 missing missing missing 5
3 missing 3 missing 4# 第二种情况
df.fillna"missing", inplace=False)
print dfA B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
3 NaN 3.0 NaN 4# 第三种情况
print df.fillna"missing", inplace=True)
None# 第四种情况
df.fillna"missing", inplace=True)
print dfA B C D
0 missing 2 missing 0
1 3 4 missing 1
2 missing missing missing 5
3 missing 3 missing 4
参考官方文档。