[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

相关文章
|
4天前
|
数据库 Python
[oeasy]python066_如何捕获多个异常_try_否则_else_exception
本文介绍了Python中`try...except...else`结构的使用方法。主要内容包括: 1. **回顾上次内容**:简要复习了`try`和`except`的基本用法,强调了异常处理的重要性。 2. **详细解释**: - `try`块用于尝试执行代码,一旦发现错误会立即终止并跳转到`except`块。 - `except`块用于捕获特定类型的异常,并进行相应的处理。 - `else`块在没有异常时执行,是可选的。 3. **示例代码**:通过具体例子展示了如何捕获不同类型的异常(如`ValueError`和`ZeroDivisionError`),并解释了异常处理
35 24
|
7天前
|
人工智能 Shell 开发工具
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
48 32
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
26天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
32 10
|
2月前
|
分布式计算 MaxCompute 对象存储
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
78 33
|
2月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
52 10
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
机器学习/深度学习 数据采集 算法
【Python数据分析基础】: 数据缺失值处理
圣人曾说过:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
【Python数据分析基础】: 数据缺失值处理
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14

热门文章

最新文章

推荐镜像

更多