详解pandas.fillna()(填充缺失值)函数使用方法

  • Post category:Python

pandas.fillna()是一个用于填充缺省值(NaN)的函数。该函数能帮助数据分析师和科学家轻松处理缺失值,从而在数据处理和初步探索阶段帮助快速地处理各种数据。

fillna()的基本语法如下:

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

其中,value是一个可选项,表示用来填充缺省值的值,可以是标量,字典,Series,或 DataFrame。method是一个可选项,表示填充缺省值的方法。axis是一个可选项,表示沿着哪个轴填充缺省值。inplace是一个可选项,决定是返回一个新的对象还是就地修改原始对象。limit是一个可选项,表示对于连续的缺省值,一次最多替换多少个。downcast是一个可选项,表示此函数进行数据类型转换时的下行类型推断。

实际上,fillna()的使用方法比较多样。以下是两个示例:

1.数据清洗

import pandas as pd
sales = pd.read_csv("sales.csv")
# 显示 DataFrame,sales包含很多NaN值
print(sales)

# 将所有 NaN填充为 0 并创建新的DataFrame,sales_replaced,以保存修改
sales_replaced = sales.fillna(0)
print(sales_replaced)

在这个案例中,我们导入一个带缺省值的DataFrame。我们使用fillna()将所有的NaN值替换为0,并创建一个新的DataFrame。在处理数据时,这种方法非常有用,因为它可以消除NaN值,使分析人员能够更好地分析数据。

2.数据预处理

import pandas as pd
statistics = pd.read_csv("statistics.csv")
# 显示DataFrame,statistics包含空格,显示未知数据
print(statistics)

# 将所有规定字段中的NaN填充为 "unknown" 并创建新的DataFrame,statistics_modified, 以保存修改
statistics_modified = statistics.fillna({"Gender": "unknown", "Language": "unknown", "Age": "unknown"})
print(statistics_modified)

在这个案例中,我们导入一个包含了 空格 和 NaN 值的 DataFrame。我们使用fillna()将浏览数据并填充GenderLanguageAge 三个字段中的NaN值为字符串“unknown”,并创建一个新的DataFrame。在数据预处理阶段,这种方法是非常有用的。

中文说明如下:

填充缺省值,即NaN和NaT,这是一个常见的需要。而该操作通常一般都是在数据清洗的过程中完成。常见的操作包括使用固定值填充缺省值、使用前一个或后一个有效行填充缺省值、使用某种插值方法填充缺省值(比如线性插值)等。在填充缺省值时,一定要注意填充的方式与业务逻辑之间的关系,以避免填充出不符合业务规则的数据。