数据分析 | 数据清理的方法

news/2024/7/4 2:02:48/文章来源:https://www.cnblogs.com/abloger/p/18270897

数据清理的步骤


# 一、读取数据
导入NumPy和Pandas数据库,用Pandas的read_csv函数读取原始数据集’e_commerce.csv’,使其转换成DataFrame格式,并赋值给变量df。
展示数据集的前5行和后5行。# 二、评估数据(整洁度、干净度)
创建一个新的变量cleaned_data = df(相当于复制一个,对备份进行操作)
评估主要从两个方面进行:结构和内容,即整齐度和干净度。'''df.info/df.describe 看整体'''1. 数据的结构性问题:* 每列是一个变量,* 每行是一个观察值,* 每个单元格是一个值2. 数据的内容性问题包括存在丢失数据、重复数据、无效数据等:* 缺失,df.isnull.sum* 重复,df.duplicated* 评估填写不一致的数据,df[].value_counts* 数据类型 df.info* 评估无效/错误数据 df.describe()# 三、清理数据
根据前面评估时候的记录来进行清理
1. 处理结构问题:* 每列是一个变量:df.melt()* 每行是一个观察值:df.melt()* 每个单元格是一个值:df.explode()2. 处理内容问题:* 缺失:df.fillna填充 ,或者直接删除 df.dropna* 重复:df.drop_duplicates() 删除重复值 * 评估填写不一致的数据:df.replace([旧1,旧2],新,inplace = True) 用替代来统一* 数据类型 df.astype() 修改数据类型* 评估无效/错误数据:df.drop() 直接删了# 四、保存数据cleaned_df.to_csv('e_commerce_cleaned.csv', index=False)

方法详解

df.melt


# 适用场景:主要用于将宽数据转换成长数据

df.explode()


# 适用场景:主要用于将一个包含列表或数组等可迭代对象的列展开。
如果一列中有很多内容(比如一列中包含一个列表),想让内容分开单独成行,则可使用explode。
——————如果非列表或数组,则不行

df.fillna(直接写值)/df[某行列].fillna({列名:替换值,列名:替换值})


# 适用场景:主要用于 自动找到缺失值进行填充

df.dropna()/
df.dropna(subset = [关注的列名])/
df.dropna(axis = 1)


# 适用场景:主要用于 直接删除存在缺失值的行
如果传入了subset,那么只要关注列没有缺失,其他列有缺失也不会删除;
如果axis = 1,就变成了关注列,只要某列有空缺,直接删除整列

df.drop_duplicates()


# 适用场景:删除重复数据
如果希望是两列同时重复,才删除,就df.drop_duplicates(subset = [关注的列名1,关注的列名2])
一般遇到重复值,会删除后面出现的值,如果想删除前面的重复值,则drop_duplicates(keep = 'last')

df.replace(原值,替换值)/dr.replace(字典)


# 适用场景:将值进行统一的时候
如果有很多个值都想替换成同一个值,直接在原值处放列表即可
如果放字典,键为原值,值为替换值

df.astype(类型)


# 适用场景:需要转换值的类型的时候,比如str转int
有一个特殊的类型是“category”,意思是一些有限的分类的值,比如颜色【蓝,红,黄】;部门【人事部,财务部,销售部】

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iMovie视频剪辑入门

iMovie学习笔记自己不是摄影爱好者📹(也许以后是,说不准),想学视频剪辑的原因如下:大一的一些小组作业有拍视频的任务,有时需要我承担剪辑的工作。因为不熟练,只能用剪映瞎折腾,浪费不少时间。系统地学习可以让我更好地完成剪辑工作。 想了解iMovie本身。本文是我的i…

域渗透之CSMSF联动权限传递

cs与msf会话的相互派生,记个笔记以免忘记具体的操作。cs派生给msf环境:msf6 + cs4.8条件:目标已上线cs,获得控制权1)在msf上启用reverse_http模块监听本地端口: use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.88.128 set l…

免费可视化工具能为我们的工作带来什么好处?

免费可视化工具能为我们的工作带来什么好处?在如今数据密集的工作环境中,如何高效地处理和展示数据成为了每个行业的重要任务。传统的工具如Excel虽然强大,但在处理复杂数据和创建高级图表时往往显得力不从心。而免费可视化工具的出现,彻底改变了这一局面,不仅大大提升了工…

MCU点灯实验小结

设备采用芯片:STM32F407ZET6 4个LED灯,网络标号分别为LED0 ,LED1,FSMC D10,FSMC D11。对应的引脚号分别为PF9,PF10,PE12,PE13。 GPIO外设基本概念 General-Purpose Input Output,通用型输入输出的,也简称I/O口,有时也简写为IO口。用于电信号的传递,以实现与外部器件的通信…

南昌航空大学-23201406-耿乐-第三次OOP博客作业

对于最后两次题目集中的题目和做题情况的总结,包括电路模拟程序3和4。 一、前言总结两次题目集的题目情况关于题目集 最后两次题目集中都只有一道题目,是电路模拟程序的系列迭代,没有额外的题目。 题目本身 第七次题目集中的电路模拟3并不是太难,只要理清题目中的要求和电路…

记录c#开发Windows服务的过程

1.新建Windows服务项目 2.重命名Service1.cs 3.添加安装程序 4.修改service,修改信息如下:备注:ServiceName和安装后的服务名保持一致哦!!!5.修改serviceProcessInstaller1 6.编辑TransService代码 7.添加新项目窗体应用程序 代码:1 using System;2 using System.Win…

操作系统启动的过程

目录操作系统,启动!大致过程重要程序bootsect.ssetup.shead.s 操作系统,启动! 大致过程 ​ 计算机的工作方式是取指执行,而执行其的前提是内存中有代码。操作系统刚开始并不是在内存中,而是在磁盘上,因此第一步需要将其以一定的方式从磁盘读入内存。(1)x86PC刚开机时C…

(我个人的)atcoder我的补题记录汇总

2024.06.27 : 根据题目难度和standing最后提交人数是否补题,大概在难度600及以下的 补完2024.06.22及之前的

最近在读《谁说菜鸟不会数据分析 SPSS篇》pdf分享

《谁说菜鸟不会数据分析(SPSS篇)》继续采用职场三人行的方式来构建内容,细致梳理了准专业数据分析的常见问题,并且挑选出企业实践中最容易碰到的案例,以最轻松直白的方式来讲好数据分析的故事。谁说菜鸟不会数据分析 SPSS篇 《谁说菜鸟不会数据分析(SPSS篇)》继续采用职…

TypeScript实现贪吃蛇效果

项目参考教程:贪吃蛇案例1.项目搭建 1.1 项目结构搭建 创建一个名为xxx的项目 项目初始化 npm init -y 安装后面需要用到的依赖,在package.json中查看 项目根目录创建名为tsconfig.json的文件并更改内容如下: {"compilerOptions": {"module": "ES2…

m基于Googlenet深度学习的运动项目识别系统matlab仿真,包括GUI界面

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要基于GoogLeNet深度学习的运动项目识别系统,是利用深度神经网络技术,尤其是GoogLeNet架构,来自动识别视频或图像中的人类运动类型的过程。GoogLeNet(也称为Inception网络)在2014年由Google团队提出,因其高…

模拟集成电路设计系列博客——7.5.6 时间交错型ADC

7.5.6 时间交错型ADC 我们可以通过将多个ADC做并行来实现非常高速的ADC[Black, 1980]。下图展示了一个四通道时间交错型ADC的架构图:此处,\(\phi_0\)是一个四倍于\(\phi_1\)到\(\phi_4\)的速率的时钟。此外,\(\phi_1\)到\(\phi_4\)彼此都落后一个\(\phi_0\)的周期。这样每个…

(构造) CF1758D Range = √Sum

题意:思路:先钦定这个序列的和为4n^{2} ,那么差值就是2n 考虑一个初始序列1,2,3,⋯,n−1,2n+1.现在我们要做的就是将这个序列变成合法的我可以进行整体都+x的操作使得这个序列的和尽量逼近4n^{2}。直接算出每个数应该加上的x,还会有一点剩余,加到a[n-1]上即可,a[n-1]+n=…

Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

哈喽,大家好,我是木头左!深入理解Java栈帧 在Java虚拟机(JVM)的运行时数据区中,每一个线程都有自己的栈(Stack),而栈中的每一个元素就是一个栈帧(Stack Frame)。当一个方法被调用时,一个新的栈帧会被创建并压入到栈中。这个栈帧包含了方法的局部变量、参数以及返回地…

数据库和Flask项目搭建

1 sqlalchemy原生操作 # 操作原生sql ---》用得少 import pymysql import threading # 1 导入 from sqlalchemy import create_engine from sqlalchemy.engine.base import Engine # 2 创建引擎 engine = create_engine("mysql+pymysql://root:1234@127.0.0.1:3306/cnblog…

flask定制Excel命令

定制excel命令并插入到数据库中 import osfrom flask import Flask from flask.cli import AppGroup import click import pymysql from openpyxl import load_workbookapp = Flask(__name__)@app.cli.group() def excel():"""Excel related commands."&qu…

flask的简单使用

1 flask介绍 #1 python 界的web框架-Django:大而全,你要的东西都有 [orm,缓存,认证]django-ninja-flask:小而精,所有web开发需要的东西,借助于第三方集成-web.py-----同步框架--进程线程架构--3.x以后支持异步--tornado sanicfastapi:高性能小而精,借助于第三方:orm…

模拟集成电路设计系列博客——7.5.5 折叠型ADC

7.5.5 折叠型ADC 我们刚了解完输入放大器的数量如何通过插值型架构来减少。但是对于一个N bit的ADC来说,仍然需要\(2^N\)个锁存比较器。这个大量的比较器数量可以通过折叠型ADC架构来减少。折叠型ADC架构类似于两步型ADC,一组LSB分离于一组MSB进行独立的查找。但是,相比两步…

240627构造

20240627构造专题 写在前面:出场即巅峰(明日模拟赛RP++) 一.何为构造 就是通过对一道题题面的分析可以发现某种规律(类似于不完全归纳法),然后发掘本质,就可以很快的解题,但是显然我还没有掌握 二.一些技巧 1.寻找特殊性质,从而求解 2.估算上界(也就是对最优情况进行…

别人工作8小时,我只需1小时!这些宝藏网站我都替你收集好了!

mac免费应用,效率工具,编程工具,设计网站,图片网站,通通一网打尽软件mac应用下载 很多破解版应该都可以找到snipaste: 截图工具,快捷截图,贴图等功能。幕布: 快速编辑思维导图。sublime text: 文档编辑器(打开速度贼快)。visual studio code: 新一代编辑器(插件非常…