#引入相关模块 import numpy as np # pandas和numpy常常结合在一起使用,导入numpy库 import pandas as pd # 导入pandas库 print(pd.__version__) # 打印pandas版本信息
1.4.1
4.11.1 缺失值处理
关于缺失值
- 在能够使用大型数据集训练学习算法之前,通常需要先清理数据, 需要通过某个方法检测并更正数据中的错误。
- 任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,缺少值等。
Pandas 会为缺少的值分配 NaN 值。
缺失值检测
- dropna 根据标签的值中是否存在缺失数据对轴标签进行过滤(删除),可通过阈值调节对缺失值的容忍度
- fillna 用指定值或插值方法(如ffill或bfill)填充缺失数据
- isnull 返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA
- notnull Isnull的否定式
dropna函数定义:
DataFrame.dropna( axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
axis参数确定是否删除包含缺失值的行或列:
- axis=0或axis='index’删除含有缺失值的行,
- axis=1或axis='columns’删除含有缺失值的列,
how参数当我们至少有一个NA时,确定是否从DataFrame中删除行或列,how='all’或者how=‘any’:
- how='all’时表示删除全是缺失值的行(列)
- how='any’时表示删除只要含有缺失值的行(列)
- thresh=n 表示保留至少含有n个非na数值的行
- subset定义要在哪些列中查找缺失值
In [2]:
df = pd.DataFrame([[ '张三',np.nan,3000, 'M'],
[ '李四',28,np.nan,np.NaN] ,
[ '王五 ',25, np.NaN,'W'],
[ '赵六',20,4000,'M'],
[ np.NaN,np.NaN,np.NaN,np.NaN]
],columns=[ '姓名', '年龄', '工资', '性别'])
df
Out[2]:
| 姓名 | 年龄 | 工资 | 性别 | |
|---|---|---|---|---|
| 0 | 张三 | NaN | 3000.0 | M |
| 1 | 李四 | 28.0 | NaN | NaN |
| 2 | 王五 | 25.0 | NaN | W |
| 3 | 赵六 | 20.0 | 4000.0 | M |
| 4 | NaN | NaN | NaN | NaN |
- .isnull() 方法返回一个大小和 df 一样的布尔型 DataFrame,并用 True 表示具有 NaN 值的元素,用 False 表示非 NaN 值的元素。
In [3]:
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 姓名 4 non-null object 1 年龄 3 non-null float64 2 工资 2 non-null float64 3 性别 3 non-null object dtypes: float64(2), object(2) memory usage: 288.0+ bytes
In [4]:
df.isnull()#返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA
Out[4]:
| 姓名 | 年龄 | 工资 | 性别 | |
|---|---|---|---|---|

本文介绍了Pandas中处理缺失值的方法,包括使用dropna删除含有缺失值的行或列,fillna填充缺失值,以及使用前向填充、后向填充和线性插值等方法。此外,还展示了如何检测和创建缺失值。
最低0.47元/天 解锁文章
169

被折叠的 条评论
为什么被折叠?



