4.11 数据预处理-1

本文介绍了Pandas中处理缺失值的方法,包括使用dropna删除含有缺失值的行或列,fillna填充缺失值,以及使用前向填充、后向填充和线性插值等方法。此外,还展示了如何检测和创建缺失值。
摘要由CSDN通过智能技术生成
#引入相关模块
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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenos121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值