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

简介: [Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念](二)
  1. (2)使用 drop() 方法删除指定列:
# 包的导入
import pandas as pd
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 删除指定列
re = data.drop('湿度(%)', axis=1)
re
# 包的导入
import pandas as pd
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 删除指定列
re = data.drop(['湿度(%)'], axis=1)
re

  1. (3)使用 apply() 方法对每列进行处理,然后使用 dropna() 方法删除数据量缺失过大的列:
  • apply():
  • 参数:
  • func:接收一个函数作为参数,该函数为对数据表中的每行或每列进行处理的函数,该函数接收有一个参数,用于接收传入的数据表中的行或列。
  • axis:轴向,axis=1表示对数据表中的每行进行处理,axis=0表示对数据表中的每列进行处理。
  • dropna():
  • 参数:
  • axis:表示轴向,0为删除行,1为删除列,默认为0.
  • how:接收 string 类型的数据为参数,表示删除的方式,any 表示只要有缺失值就删除该行或列,all表示全部为缺失值才删除行或列。默认为any。
  • subset:接收 array 类型的数据为参数,表示进行缺失值处理的行或列,默认为None,表示所有的行或列。
  • inplace:表示是否在原表上进行操作,默认为False。

假设数据的缺失达到0.3为数据缺失过多,需要将该列进行删除。

湿度这列非空的数据个数为13310,表2中的总行数为19491,湿度列的数据缺失已达0.3,所有要将湿度这一列进行删除。

# 包的导入
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 获取所有列中非空数据个数最多的列的数据个数
max_num = data.count().max()
# 处理数据表中的每列
# 数据缺失过多,将整列修改为空
def fun(col):
  # print(col.count())
  # 计算每列的非空数据个数
  num = col.count()
  # 假设数据缺失达到0.3为数据缺失过多
  # 需要对该列进行删除
  if (num/max_num < 0.7):
    # 返回空
    return np.nan
  else:
    return col  
# re = data.apply(fun)
re = data.apply(fun, axis=0)
# 删除整列为空的列
re.dropna(how='all', inplace=True, axis=1)

返回文章目录

1.2 缺失值填补

  • 对缺失值进行填补,有如下几种方法:
  • 1.使用一个常数对表中的所有缺失值进行填补。
  • 2.使用缺失值所在的行或列的上一个或下一个非缺失值进行填补。
  • 3.使用缺失值所在的行或列的平均值进行填补。
  • 4.使用缺失值所在的行或列的众数进行填补。
  • 5.使用缺失值所在的行或列的中位数进行填补。
  • 6.使用缺失值所在的行或列的前一个和后一个非缺失值的均值进行填补。
  • 7.使用拉格朗日插值法对缺失值进行填补
  • 8.使用预测模型对缺失值进行填补

使用哪种缺失值填补方法对缺失值进行填补,需要根据数据所在的实际场景进行分析与选择,使得缺失值填补后,对最后的结果造成的影响尽可能的小。

一般缺失值的填补是针对存在少量数据缺失的行或列,或者是删除整行数据缺失的行和大量数据缺失的行与列后数据集中仍有部分数据缺失的行或列。

如:

返回文章目录

fillna()

  • 参数:
  • value:表示用来替换缺失值的值
  • method:接收 string 为参数,backfill或bfill表示使用下一个非缺失值进行替换,pad或ffill表示使用上一个非缺失值进行替换,默认为None
  • axis:表示轴向,axis=1表示在一行中如果有缺失值,使用上一列或下一列的数据来填补缺失值;axis=0表示在一列中如果有缺失值,使用上一行或下一行的数据来填补缺失值。
  • inplace:表示是否在原表上进行操作,默认为False。
  • limit:表示填补缺失值的个数上限,默认为None
  • value与method选择其一即可

以下的举例均不考虑实际的应用情况和实际场景。

每个例子使用的都为原始的表格,没有经过预处理。

返回文章目录

1.2.1 使用常数填补缺失值

调用 fillna() 方法,使用一个常数对数据表中所有的缺失值进行填补。

# 包的导入
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 使用 999 填补数据表中的所有缺失值
re = data.fillna(value=999)
re

返回文章目录

1.2.2 使用上一个或下一个非缺失值填补

调用 fillna() 方法,使用缺失值的上一个或下一个非缺失值对数据表中所有的缺失值进行填补。

由于湿度这一列第一行的数据为空,所以使用缺失值的下一行非缺失值对缺失的数据进行填补。

# 包的导入
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_excel('../../监测点C逐小时污染物浓度与气象实测数据.xlsx')
# 使用缺失值的下一行非缺失值填补数据表中的所有缺失值
re = data.fillna(method='bfill', axis=0)
re

相关文章
|
2天前
|
人工智能 数据挖掘 大数据
538个代码示例!麻省理工教授的Python程序设计+人工智能案例实践
Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。 此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面有广泛应用。 尤其是在数据分析和人工智能方面,Python已成为最受开发者欢迎的编程语言之一,不仅大量计算机专业人员选择使用Python进行快速开发,许多非计算机专业人员也纷纷选择Python语言来解决专业问题。 由于Python应用广泛,关于Python的参考书目前已经有很多,但将Python编程与数据分析、人工智
|
2天前
|
Python
python中使用update()方法
【6月更文挑战第16天】
15 7
|
2天前
|
JSON API 数据库
Python使用Quart作为web服务器的代码实现
Quart 是一个异步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是传统的 WSGI(Web Server Gateway Interface)。这使得 Quart 特别适合用于构建需要处理大量并发连接的高性能 Web 应用程序。与 Flask 类似,Quart 也非常灵活,可以轻松地构建 RESTful API、WebSockets、HTTP/2 服务器推送等。
|
1天前
|
数据采集 人工智能 JavaScript
如何使用Python执行js代码
如何使用Python执行js代码
|
1天前
|
Web App开发 数据采集 JavaScript
python执行js代码几个方法
python执行js代码几个方法
|
机器学习/深度学习 运维 算法
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
【Python数据分析基础】: 异常值检测和处理
|
1天前
|
机器学习/深度学习 人工智能 前端开发
Python中的模块化编程
【6月更文挑战第17天】Python模块化编程与软件架构设计的关键在于拆分任务到独立模块,提高代码的可维护性、可重用性和可扩展性。例如,学生管理系统可分解为录入、查询和删除模块。MVC和MVVM架构模式有助于组织代码,而微服务和函数式编程将在未来发展中扮演重要角色。通过示例代码,读者能学习如何实现这些概念,提升项目开发效率和质量。
146 56
|
8天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!
|
6天前
|
开发者 Python
【干货】Python编程惯例
【干货】Python编程惯例
11 1
|
8天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。