maxframe.dataframe.DataFrame.fillna#
- DataFrame.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) -- 如果指定了 method,则这是向前/向后填充连续 NaN 值的最大数量。换句话说,如果存在连续 NaN 值数量超过该值的间隙,则只会部分填充。如果未指定 method,则这是在整个轴上填充 NaN 值的最大条目数。如果不为 None,则必须大于 0。
downcast (dict, default is None) -- 一个 item->dtype 的字典,用于指定可能时进行向下类型转换的内容,或者字符串 '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