當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.core.groupby.DataFrameGroupBy.fillna用法及代碼示例


用法:

property DataFrameGroupBy.fillna

使用指定的方法填充 NA/NaN 值。

參數

value標量、字典、係列或數據幀

用於填充孔的值(例如 0),或者是值的 dict/Series/DataFrame,指定用於每個索引(對於 Series)或列(對於 DataFrame)的值。不在 dict/Series/DataFrame 中的值將不會被填充。此值不能是列表。

method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, 無},默認無

用於填充重新索引係列填充中的孔的方法 /ffill:將最後一個有效觀察向前傳播到下一個有效回填 /bfill:使用下一個有效觀察來填充間隙。

axis{0 或 ‘index’、1 或 ‘columns’}

沿其填充缺失值的軸。

inplace布爾值,默認為 False

如果為真,則就地填寫。注意:這將修改此對象上的任何其他視圖(例如,DataFrame 中列的no-copy 切片)。

limit整數,默認無

如果指定了方法,則這是向前/向後填充的連續 NaN 值的最大數量。換句話說,如果有超過這個數量的連續 NaN 的間隙,它隻會被部分填充。如果未指定方法,則這是沿整個軸將填充 NaN 的最大條目數。如果不是無,則必須大於 0。

downcast字典,默認為無

item->dtype 的字典,如果可能的話要向下轉換,或者字符串 ‘infer’ 將嘗試向下轉換為適當的相等類型(例如,如果可能,將 float64 轉換為 int64)。

返回

DataFrame 或無

填充缺失值的對象,如果 inplace=True 則為 None。

例子

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
...                    [3, 4, np.nan, 1],
...                    [np.nan, np.nan, np.nan, np.nan],
...                    [np.nan, 3, np.nan, 4]],
...                   columns=list("ABCD"))
>>> df
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  NaN  NaN NaN  NaN
3  NaN  3.0 NaN  4.0

用 0 替換所有 NaN 元素。

>>> df.fillna(0)
     A    B    C    D
0  0.0  2.0  0.0  0.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  0.0
3  0.0  3.0  0.0  4.0

我們還可以向前或向後傳播非空值。

>>> df.fillna(method="ffill")
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  3.0  4.0 NaN  1.0
3  3.0  3.0 NaN  4.0

將“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.0
1  3.0  4.0  2.0  1.0
2  0.0  1.0  2.0  3.0
3  0.0  3.0  2.0  4.0

僅替換第一個 NaN 元素。

>>> df.fillna(value=values, limit=1)
     A    B    C    D
0  0.0  2.0  2.0  0.0
1  3.0  4.0  NaN  1.0
2  NaN  1.0  NaN  3.0
3  NaN  3.0  NaN  4.0

使用 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.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  NaN
3  0.0  3.0  0.0  4.0

請注意,D 列不受影響,因為它不存在於 df2 中。

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.core.groupby.DataFrameGroupBy.fillna。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。