pandas中的 fillna使用(pandas.DataFrame.fillna)
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")) >>> df A 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.fillna(0) 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.fillna(method="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.fillna(value=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.fillna(value=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.DataFrame(np.zeros((4, 4)), columns=list("ABCE")) >>> df.fillna(df2) 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 df A 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 df A B C D 0 missing 2 missing 0 1 3 4 missing 1 2 missing missing missing 5 3 missing 3 missing 4
参考官方文档。
下一篇:
C-整型数据存储之大小端模式