公众号:快乐数模
小红书:学数模使我快乐
当没有提供一个或多个项目或整个单元的信息时,可能会出现缺失数据。缺失数据在现实生活中是一个非常大的问题。缺失数据在 Pandas 中也可以称为 NA(不可用)值。在 DataFrame 中,有时许多数据集都带有缺失数据,要么是因为它存在但未被收集,要么是它从未存在过。例如,假设接受调查的不同用户可能选择不分享他们的收入,一些用户可能选择不分享地址,这样许多数据集就丢失了。
在 Pandas 中,缺失数据用两个值表示:
- None:None 是一个 Python 单例对象,常用于 Python 代码中缺失的数据。
- NaN :NaN(Not a Number 的缩写),是所有使用标准 IEEE 浮点表示法的系统都可识别的特殊浮点值
Pandas 将 None 和 NaN 视为本质上可以互换的,用于表示缺失值或空值。为了促进这种惯例,有几个有用的函数可用于检测、删除和替换。
一、使用 isnull() 和 notnull() 检查缺失值
为了检查 Pandas DataFrame 中的缺失值,我们使用函数 isnull() 和 notnull()。这两个函数都有助于检查值是否为 NaN。这些函数也可以在 Pandas Series 中使用,以便在系列中查找空值。
1.1 使用 isnull() 检查缺失值
为了检查 Pandas DataFrame 中的空值,我们使用 isnull() 函数,该函数返回对于 NaN 值为 True 的布尔值的数据框。
代码一:
import pandas as pd
import numpy as np
dict = {
'First Score':[100, 90, np.nan, 95],
'Second Score': [30, 45, 56, np.nan],
'Third Score':[np.nan, 40, 80, 98]}
df = pd.DataFrame(dict)
df.isnull()
代码二:
import pandas as pd
data = pd.read_csv('employees.csv')
bool_series = pd.isnull(data['Gender'])
print(data[bool_series])
输出:如输出图所示,仅显示 Gender = NULL 的行。
1.2 使用notnull() 检查缺失值
为了检查 Pandas Dataframe 中的空值,我们使用 notnull() 函数,该函数返回布尔值的数据框,对于 NaN 值为 False。
代码三:
import pandas as pd
import numpy as np
dict = {
'First Score':[100, 90, np.nan, 95],
'Second Score': [30, 45, 56, np.nan],
'Third Score':[np.nan, 40, 80, 98]}
df = pd.DataFrame(dict)
df.notnull()
代码四:
import pandas as pd
data = pd.read_csv('employees.csv')
bool_series = pd.notnull(data['Gender'])
print(data[bool_series])
仅显示 Gender = NOT NULL 的行。
二、使用 fillna()、replace() 和 interpolate() 填充缺失值
为了在数据集中填充空值,我们使用 fillna()、replace() 和 interpolate() 函数,这些函数用它们自己的某个值替换 NaN 值。所有这些函数都有助于在 DataFrame 的数据集中填充空值。Interp