Python数据清洗2

news2024/11/15 13:47:36

一、函数数据处理

1.在dataframe中使用apply方法,调用自定义函数对数据进行处理
在这里插入图片描述

2.可以使用astype函数对数据进行转换
3.可以使用map函数进行数据转换
在这里插入图片描述

二、数据分组运算

1.使用groupby方法进行分组计算,得到分组对象GroupBy
在这里插入图片描述

2.语法为df.groupby(by=)
在这里插入图片描述

3.分组对象GroupBy可以运用描述性统计方法, 如count、mean 、median 、max和min等
在这里插入图片描述

在这里插入图片描述

三、聚合函数使用

1.对分组对象使用agg聚合函数
2.Groupby.agg(func)
3.针对不同的变量使用不同的统计方法
在这里插入图片描述

四、透视表与交叉表

1.数据透视表
pivot_table( data, index, columns,values, aggfunc, fill_value,margins, margins_name=)

Index : 行分组键
columns: 列分组键
values: 分组的字段,只能为数值型变量
aggfunc: 聚合函数
margins: 是否需要总计
在这里插入图片描述

2.交叉表
pd.crosstab(index,columns,normalize)

Index: 行索引
Columns: 列索引
Normalize: 数据对数据进行标准化,index表示行,column表示列
在这里插入图片描述

五、数据预处理

5.1重复值处理

数据清洗一般先从重复值和缺失值开始处理,重复值一般采取删除法来处理。但有些重复值不能删除,例如订单明细数据或交易明细数据等。
在这里插入图片描述

5.2缺失值处理

缺失值首先需要根据实际情况定义,可以采取直接删除法;有时候需要使用替换法或者插值法;常用的替换法有均值替换、前向、后向替换和常数替换。

  • 删除

在这里插入图片描述
在这里插入图片描述

  • 替换
    在这里插入图片描述
    在这里插入图片描述

5.3异常值处理

指那些偏离正常范围的值,不是错误值;异常值一般用**过箱线图法(分位差法)**或者分布图(标准差法)来判断;异常值往往采取盖帽法或者数据离散化。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

六、数据离散化处理

数据离散化就是分箱,一般常用分箱方法是等频分箱或者等宽分箱,一般使用pd.cut或者pd.qcut函数。

  • pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)

x,类array对象,且必须为一维,待切割的原形式
bins, 整数、序列尺度、或间隔索引。如果bins是一个整数,它定义了x宽度范围内的等宽面元数量,
但是在这种情况下,x的范围在每个边上被延长1%,以保证包括x的最小值或最大值。
如果bin是序列,它定义了允许非均匀bin宽度的bin边缘。在这种情况下没有x的范围的扩展。
right,布尔值。是否是左开右闭区间,right=True,左开右闭,right=False,左闭右开
labels,用作结果箱的标签。必须与结果箱相同长度。如果FALSE,只返回整数指标面元。
retbins,布尔值。是否返回面元
precision,整数。返回面元的小数点几位
include_lowest,布尔值。第一个区间的左端点是否包含

  • pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates=’raise’)

x
q,整数或分位数组成的数组。
q, 整数 或分位数数组 整数比如 4 代表 按照4分位数 进行切割
labels, 用作结果箱的标签。必须与结果箱相同长度。如果FALSE,只返回整数指标面元。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

七、总结

  • 步骤
    1.数据获取,使用read_csv或者read_excel
    2.数据探索,使用shape,describe或者info函数
    3.行列操作,使用loc或者iloc函数
    4.数据整合,对不同数据源进行整理
    5.数据类型转换,对不同字段数据类型进行转换
    6.分组汇总,对数据进行各个维度的计算
    7.处理重复值、缺失值和异常值以及数据离散化
  • 函数
    1.merge,concat函数常常用于数据整合
    2.pd.to_datetime常常用于日期格式转换
    3.str函数用于字符串操作
    4.函数astype用于数据类型转换
    5.函数apply和map用于更加高级的数据处理
    6.Groupby用于创建分组对象
    7.透视表函数pd.pivot_table和交叉表pd.crosstab
    8.分组对象和agg结合使用,统计需要的信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在甲骨文云容器实例(Container Instances)上部署chrome

甲骨文云推出了容器实例,这是一项无服务器计算服务,可以即时运行容器,而无需管理任何服务器。 今天我们尝试一下通过容器实例部署chrome。 Step1. 创建容器实例 在甲骨文容器实例页面,单击"创建容器实例",…

LInux(四)进程控制(创建、终止、等待、替换)

目录 一、进程创建 1、pid_t fork(void) 2、写时拷贝技术(父子进程间代码共享、数据独有) 3、vfork()--创建一个子进程 4、fork创建子进程流程是什么样的? 5、一个关于fork的程序 6、程序a 7、 程序b 二、进程终止 1、在main函数中…

E2PROM 蓝桥杯 stm32 AT24C02读写函数

本文 代码使用 HAL 库 。 文章目录前言一、AT24C02 读写函数:1. 读函数2. 写函数:二. AT24C02 读写地址,原理图三. 延时问题总结下一节讲解 MCP4017。使用 E2PROM 来计算板子的上电次数 实验效果。前言 本文 先列出 AT24C02 读写函数 &#…

【蓝桥杯】简单数论3——素数

1、素数判断 素数定义:只能被1和自己整除的正整数。注:1不是素数,最小素数是2。 判断一个数n是不是素数:当n≤时,用试除法;n>时,试除法不够用,需要用高级算法,例如Miller_Rabin算法。 试除法:用[2, n…

MySQL —— 库操作

目录 一、库操作 1. 创建数据库 2. 创建数据库案例 二、字符集和校验规则 1. 查看系统默认字符集以及校验规则 2. 查看数据库支持的字符集 3. 查看数据库支持的字符集校验规则 4. 校验规则对数据库的影响 三、操纵数据库 1. 查看数据库 2. 显示创建语句 3. 修改数…

Pandas 数据可视化

数据可视化Joyful Pandas基本绘图动手学数据分析2 第二章:数据可视化2.7 如何让人一眼看懂你的数据?2.7.1 任务一2.7.2 任务二2.7.3 任务三2.7.4 任务四2.7.5 任务五2.7.6 任务六2.7.7 任务七Joyful Pandas Datawhale社区 Joyful Pandas 基本绘图 一维…

《深入浅出计算机组成原理》学习笔记 Day9

乘法器1. 顺序乘法2. 并行加速方法3. 电路并行参考1. 顺序乘法 以 13913 \times 9139为例,131011012,9101001213_{10} 1101_2, 9_{10} 1001_21310​11012​,910​10012​。用列竖式的方式计算: 在二进制下,由于只有 0 和 1,计…

逆序对问题、树状数组与离散化

目录 一、前言 二、逆序对问题 1、暴力法 2、归并排序法 3、树状数组与逆序对(最巧妙最好的方法) (1)倒序 (2)正序 (3)离散化 三、例题 1、小朋友排队(lanqiao…

springBoot——SpringBoot 整合 Mybatis 流程

SpringBoot 整合持久层SpringBoot 整合 Mybatis 流程一、添加依赖1. pom.xml二、写配置文件1. application.yml三、写 Java 文件1. entity2. dao3. service4. controller5. mapper四、建立数据库五、测试SpringBoot 整合 Mybatis-Plus 流程一、添加依赖1. pom.xml二、写配置文件…

linux基本功系列之chattr命令

文章目录一. chattr命令介绍二. 语法格式及常用选项三. 参考案例3.1 给指定文件添加隐藏属性,阻止文件被修改:3.2 撤销i属性3.3 允许补充(追加)内容,无法覆盖/删除内容总结前言🚀🚀&#x1f680…

LabVIEW监控操纵杆,键盘或鼠标

LabVIEW监控操纵杆,键盘或鼠标在LabVIEW中从操纵杆/鼠标/键盘获取数据在LabVIEW中监控我的输入设备如何知道键盘上按了哪些键?用轮询的方式监控鼠标,键盘或操纵杆的动作。要在LabVIEW中监控这些设备,可以使用内置的输入设备采集VI…

【STM32】寄存器原理

如果我们想要深入去学习STM32单片机的存储原理和方式,就要花时间去了解STM32单片机有关寄存器的基本原理 单片机型号:正点原子STM32F103ZET6 目录 寄存器的定义 寄存器分类 存储器映射 寄存器映射 通过地址访问控制单元运作 通过定义宏来取代直接访…

C++ 哈希表查询_进入哈希函数结界的世界

1. 前言 哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API&…

基于PythonOpenCv的视频图像处理

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

【教程】虚拟环境与Pytorch安装保姆级教学

【教程】虚拟环境与Pytorch安装保姆级教学NVIDIA驱动安装虚拟环境创建激活/退出相关库的安装Pycharm内设置虚拟环境Pytorch安装安装地址可能遇到的问题处理报错安装卡顿测试是否安装完成参考NVIDIA驱动安装 NVIDIA驱动可在官网进行安装:NVIDIA驱动官网 命令行输入…

一文上手决策树:从理论到实战

一、基础概念 决策树是一类极为常用的机器学习方法,尤其是在分类场景。决策树通过树形结构来递归地将样本分割到不同的叶子结点中去,并根据每个叶子结点中的样本构成对该结点中的样本进行分类。 我们可以从两个视角来理解决策树模型。 第一种视角是将…

Python副业技术总结,手把手教你用宝塔面板部署Django程序

前言 最近写了几个Django项目,写完以后怎么让对方测试成了问题,因为之前都是自己在本地写的练习项目,对于部署这一块很陌生,不知道怎么操作,内心很忐忑。没办法,只能硬着头皮上,一边百度&#…

17种编程语言实现排序算法-插入排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

ARP渗透与攻防(四)之WireShark截获用户数据

ARP-WireShark截获用户数据 系列文章 ARP渗透与攻防(一)之ARP原理 ARP渗透与攻防(二)之断网攻击 ARP渗透与攻防(三)之流量分析 1.WireShark工具介绍 wireshark的官方下载网站: WireShark wireshark是非常流行的网络封包分析软件,功能十分强大。可以…

PowerShell 学习笔记:压缩、解压缩文件

在自动构建的时候&#xff0c;最常用的就是压缩备份项目的源文件&#xff0c;PowerShell提供了相关命令。Compress-Archive&#xff08;压缩文件&#xff09;Compress-Archive[-Path] <String[]>[-DestinationPath] <String>[-CompressionLevel <String>][-P…