maxframe.dataframe.Series.fillna#
- Series.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)#
使用指定的方法填充 NA/NaN 值。
- 参数:
value (scalar, dict, Series, or DataFrame) -- 用于填充缺失值的值(例如 0),或者是一个 dict/Series/DataFrame,用于指定每个索引(对于 Series)或列(对于 DataFrame)所使用的值。不在 dict/Series/DataFrame 中的值将不会被填充。此值不能是列表。
method ({'backfill', 'bfill', 'pad', 'ffill', None}, default None) -- 用于填充重索引 Series 中缺失值的方法 pad / ffill:将最后一个有效观测值向前传播到下一个有效值 backfill / bfill:使用下一个有效观测值来填充空白。
axis ({0 or 'index', 1 or 'columns'}) -- 用于填充缺失值的轴。
inplace (bool, default False) -- 如果为 True,则就地填充。注意:这将修改该对象上的任何其他视图(例如,DataFrame 中某一列的无复制切片)。
limit (int, default None) -- 如果指定了方法,则这是向前/向后填充连续 NaN 值的最大数量。换句话说,如果存在超过此数量的连续 NaN 缺失,则只会被部分填充。如果未指定方法,则这是沿整个轴 NaN 将被填充的最大条目数。如果不为 None,则必须大于 0。
downcast (dict, default is None) -- 一个 dict,表示如果可能的话要向下转换的项目->数据类型,或者字符串 'infer',它将尝试向下转换为合适的相等类型(例如,如果可能的话,将 float64 转换为 int64)。
- 返回:
填充了缺失值的对象,如果
inplace=True则返回 None。- 返回类型:
DataFrame or None
参见
interpolate使用插值填充 NaN 值。
reindex使对象符合新的索引。
asfreq将时间序列转换为指定频率。
示例
>>> import maxframe.tensor as mt >>> import maxframe.dataframe as md >>> df = md.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.execute() 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
将所有 NaN 元素替换为 0。
>>> df.fillna(0).execute() 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
我们也可以将非空值向前或向后传播。
>>> df.fillna(method='ffill').execute() 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
将列 'A'、'B'、'C' 和 'D' 中的所有 NaN 元素分别替换为 0、1、2 和 3。
>>> values = {'A': 0, 'B': 1, 'C': 2, 'D': 3} >>> df.fillna(value=values).execute() 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