当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.DataFrame.fillna用法及代码示例


用法:

DataFrame.fillna(value=None, method=None, limit=None, axis=None)

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

此文档字符串是从 pandas.core.frame.DataFrame.fillna 复制而来的。

可能存在与 Dask 版本的一些不一致之处。

参数

value标量、字典、系列或数据帧

用于填充孔的值(例如 0),或者是值的 dict/Series/DataFrame,指定用于每个索引(对于 Series)或列(对于 DataFrame)的值。不在 dict/Series/DataFrame 中的值将不会被填充。此值不能是列表。

method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, 无},默认无

用于填充重新索引系列填充/填充中的孔的方法:将最后一个有效观察向前传播到下一个有效回填/bfill:使用下一个有效观察来填充间隙。

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

沿其填充缺失值的轴。

inplacebool,默认 False(在 Dask 中不支持)

如果为真,则就地填写。注意:这将修改此对象上的任何其他视图(例如,DataFrame 中列的no-copy 切片)。

limit整数,默认无

如果指定了方法,则这是向前/向后填充的连续 NaN 值的最大数量。换句话说,如果有超过这个数量的连续 NaN 的间隙,它只会被部分填充。如果未指定方法,则这是沿整个轴将填充 NaN 的最大条目数。如果不是无,则必须大于 0。

downcastdict,默认为无(在 Dask 中不支持)

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 中。

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.DataFrame.fillna。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。