[Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念](一)

简介: [Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念]

image.png


前言

系列文章目录

[Python]目录

视频及资料和课件

链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234

提取码:1234

数据、文献

数据、文献:

「[Python] 数据预处理(缺失…异常值、重复值)」

返回文章目录

1. 缺失值处理

  • 对于缺失值一般有两种处理方式:
  • 1.将缺失值直接删除
  • 2.对缺失值进行填补

返回文章目录

1.1 缺失值删除

返回文章目录

1.1.1 适用情况

  • 对于缺失值采用直接删除的方式进行处理有如下几种情况:
  • 1.对于数据表中的一行,如果整行数据缺失,或者是在一行中所需要使用的数据列对应的数据缺失,那么可以将这一行直接进行删除。
    如:

  • 2.如果在一行或者一列中存在大量的数据缺失,那么可以对该行或该列直接进行删除。

在一行或一列中,数据的缺失量是否达到需要删除该行或该列,需要视情况而定,这没有十分准确的标准。

  • 如:

表1:

表2:

返回文章目录

1.1.2 代码实现

返回文章目录

1.1.2.1 情况一代码

通过调用 dropna() 方法,删除整行数据缺失的行,或者在一行中所需要使用的数据列对应的数据缺失的行。

  • dropna():
  • 参数:
  • axis:表示轴向,0为删除行,1为删除列,默认为0.
  • how:接收 string 类型的数据为参数,表示删除的方式,any 表示只要有缺失值就删除该行或列,all表示全部为缺失值才删除行或列。默认为any。
  • subset:接收 array 类型的数据为参数,表示进行缺失值处理的行或列,默认为None,表示所有的行或列。
  • inplace:表示是否在原表上进行操作,默认为False。
# 包的导入
import pandas as pd
# 读取数据
data = pd.read_excel('../../监测点C逐日污染物浓度实测数据.xlsx')
# 删除数据缺失的行
# 当 subset 指定的列全部缺失才删除对应的行
data_new = data.dropna(
  how='all', 
  subset=[
    'SO2实测日均(μg/m³)', 
    'NO2实测日均(μg/m³)', 
    'PM10实测日均(μg/m³)', 
    'PM2.5实测日均(μg/m³)', 
    'O3实测八小时滑动平均日最大值(μg/m³)', 
    'CO实测日均(mg/m³)'
  ]  
)
# print(data_new)
# 导出处理后的数据
data_new.to_excel('./1.xlsx')

返回文章目录

1.1.2.2 情况二代码
  1. 如果在一行中存在大量的数据缺失,直接删除该行。

数据表表1

中一共有8列数据,除去第一第二列,剩下六列数据,当一行中缺失的数据大于等于4个时,将该行删除。

  1. 先调用 apply() 方法对数据表的每行进行处理,然后再对数据表中需要删除的行进行删除。
  • apply():
  • 参数:
  • func:接收一个函数作为参数,该函数为对数据表中的每行或每列进行处理的函数,该函数接收有一个参数,用于接收传入的数据表中的行或列。
  • axis:轴向,axis=1表示对数据表中的每行进行处理,axis=0表示对数据表中的每列进行处理。
# 包的导入
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_excel('../../监测点C逐日污染物浓度实测数据.xlsx')
# 当一行中的数据,除去第一第二列,
# 缺失的数据个数大于等于4(该表中一共8列数据)
# 返回空行
# 否则将原来的行返回
def fun(row):
  sub_row = row[2:]
  cnt = sub_row.count()
  if cnt<=2 :
    # return None
    return np.nan
  else :
    return row
# 调用 apply() 方法对每行数据进行处理
re = data.apply(fun, axis=1)
# 删除整行数据为空的行,直接修改原表
re.dropna(how='all', inplace=True)

  1. 如果在一列中存在大量的数据缺失,直接删除该列。

通过对表2

中,每列非空数据的统计,发现湿度这一列存在大量的数据缺失,所以将这列数据整列进行删除。

  • 删除指定列的方法:
  • pop():
  • pop() 方法一次只能删除一列数据,且是对原数组直接进行列的删除,同时会返回删除的列的数据。
  • 参数:
  • item:需要删除的列的列名。
  • drop():
  • drop() 方法支持多列删除,不对原数组直接进行列的删除,会返回一个删除指定列后的新数组。
  • 参数:
  • labels:接收一个字符串类型数据或一个序列为参数,表示要删除的列。
  • axis:轴向,axis=1表示对列进行删除,axis=0表示对行进行删除。
  1. (1)使用 pop() 方法删除指定列:
# 包的导入
import pandas as pd
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 删除指定列
data.pop('湿度(%)')
data

相关文章
|
29天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
49 3
|
16天前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
15天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
57 8
|
22天前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
45 11
|
24天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
111 5
|
26天前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
40 6
|
29天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
52 8
|
1月前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
93 4
|
机器学习/深度学习 运维 算法
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
|
21天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!