pandas用均值填充nan_pandas dataframe 填充 NaN(填补缺失值)的方法 fillna 函数使用说明...

在基于 pandas 的 DataFrame 对象进行数据处理时(如样本特征的缺省值处理),可以使用 DataFrame 对象的 fillna 函数进行填充,同样可以针对指定的列进行填补空值,单列的操作是调用 Series 对象的 fillna 函数。

fillna 函数

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

fillna 函数将用指定的值(value)或方式(method)填充 NA/NaN 等空值缺失值。

value

用于填充的值,可以是数值、字典、Series 对象 或 DataFrame 对象。

method

当没有指定 value 参数时,可以该参数的内置方式填充缺失值,可选项有 {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None},默认值为 None;backfill 和 bfill 用下一个非缺失值填充该缺失值,pad 和 ffill 用前一个非缺失值去填充该缺失值。该参数通常和 axis 一起使用,值得注意的是,method 参数不能与 value 同时出现。

axis

指定填充维度,具体指行维度或列维度,也可以理解为指定填充的方向,可选值有整数 0 或 1,也可以是字符串,选项有 'index' 或 'columns',0 等同于 'index' 表示行维度,1 等同于 'columns' 表示列维度。

inplace

是否修改原对象的值,True 表示修改,默认是 False,表示创建一个副本,修改副本,原对象不变。

limit

指定填充的个数上限,默认为 None,即不限制。

示例

通过常数填充 NaN

填充前:

import pandas as pd

df = pd.read_csv("nba.csv")

DataFrame 对象 df 如下图:

下面将如上示例的 College 列的 NaN 填充为 'No College',同时改变原对象的值,代码如下:

import pandas as pd

df = pd.read_csv("nba.csv")

df["College"].fillna("No College", inplace = True)

执行上述代码后,df 变为如下输出:

利用 method 参数填充 NaN

下面示例,指定 method 为 ffill,即缺失值的前一个值来填充 NaN,同样针对 College 列进行操作,会看到第 4、5 行的空值变为 Georgia State。

import pandas as pd

df = pd.read_csv("nba.csv")

df["College"].fillna(method ='ffill', inplace = True)

输出如下:

使用 limit 参数设置填充上限

设置 limit 参数为 1,这样只会按序填充完 1 个空值,具体示例如下:

import pandas as pd

df = pd.read_csv("nba.csv")

df["College"].fillna(method ='ffill', limit = 1, inplace = True)

代码执行完结果为只改变了第 4 行数据,第 5 行空值未填充,输出如下:

你可能感兴趣的:(pandas用均值填充nan)