[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

相关文章
|
5月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
334 100
|
5月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
504 95
|
5月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
285 88
|
5月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1013 68
|
6月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
826 102
|
6月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
414 104
|
6月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
332 103
|
6月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
271 82
|
5月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
381 3
|
5月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
607 3

推荐镜像

更多