python数据清洗

news2024/11/15 23:21:31

数据清洗包括:空值,异常值,重复值,类型转换和数据整合

这里数据清洗需要用到的库是pandas库,下载方式还是在终端运行 : pip install pandas.

首先我们需要对数据进行读取

import pandas as pd

data = pd.read_csv(r'E:\PYthon\用户价值分析 RFM模型\data.csv')
pd.set_option('display.max_columns', 888)  # 大于总列数
pd.set_option('display.width', 1000)
print(data.head())
print(data.info())

第3行是对数据进行读取,pandas库里面有读取函数调用即可,csv格式是读取写入速度最快的。

第4,5行是为了读取的实话显示全部的列,是因为很多列的话pycharm会把中间一些列隐藏掉,所以我们这为了他不隐藏就加这两行代码。

第6行是显示表头,我们可以看到有什么字段,列名

第7行是显示表的基本信息,每一列有多少数据,字段是什么类型的数据。非空的数据有多少,所以我们第一步就可以看得到基本那一列有空值了。

空值处理:

data.info()后我们可以看到大部分数据都有541909行,所以我们大致猜到是Description ,CustomerID 列漏结果了

# 空值处理
print(data.isnull().sum())  # 空值中和,查看每一列的空值

# 空值删除
data.drop(columns=['Description'], inplace=True)
print(data.info())

data.isnull()判断是否为空。data.isnumll().sum()计算空值数量。

第5行进行空值删除,这里先删除Description列的空值,inplace=True意思是对数据进行修改,如果没有inplace=True,则不对data进行修改,打印数据还是和之前一样,或者重新定义一个变量进行赋值。

由于这一列空值数据比较少,这一列数据对我们数据分析没有那么重要,所以我们选择删除这一整列。

我们这个表是对客户进行筛选的,所以以CustomerID为准,强制删除其他列

# CustomerID有空值
# 删除所有列的空值
data.dropna(inplace=True)
# print(data.info())
print(data.isnull().sum())  # 由于CustomerID为必须字段,所以强制删除其他列,以Custome
rID为准

这里我们先对其他字段进行类型转换

类型转换

# 转换为日期类型
data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate'])

# CustomerID 转换为整型
data['CustomerID'] = data['CustomerID'].astype('int')
print(data.info())

以上我们处理了空值,接下来我们处理异常值。

异常值处理:

查看表的基本数据分布可以使用describe

print(data.describe())

可以看到数据Quantity 列中最小值为-80995.这列明显有异常值,所以需要对这一列进行异常值筛选。

只需要大于0的值。

data = data[data['Quantity'] > 0]
print(data)

打印一下就只有397924行了。

重复值处理:

# 查看重复值
print(data[data.duplicated()])

有5194行重复值,这里的重复值是完全重复的,所以是没用的数据我们可以进行删除。

删除重复值:
# 删除重复值
data.drop_duplicates(inplace=True)

print(data.info())

删除后对原来的表进行保存,再去查看一下表的基本信息

现在还剩下392730条数据。数据到这一步就完成了数据清洗。空值,异常值,重复值,类型转换。后面一篇文章是对数据进行分析。

表格数据下载

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

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

相关文章

MySQL的索引和锁

MySQL的索引和锁 一.存储引擎1.1 MySQL体系结构1). 连接层2). 服务层3).存储引擎层4). 存储层 1.2 存储引擎介绍1). 建表时指定存储引擎2). 查询当前数据库支持的存储引擎 1.3 存储引擎特点1.3.1 InnoDB1.3.2 MyISAM 1.4 存储引擎选择 二 索引2.1 索引概述2.1.1 介绍2.2.2 B-Tr…

【数据库开发】国产数据库之涛思TDengine

文章目录 1、简介2、安装2.1 安装TDengine服务2.2 运行TDengine服务(taosd)2.3 执行TDengine命令行(taos) 3、测试3.1 新建数据库(命令行命令)3.2 新建数据库(脚本文件)3.3 命令行参…

KlayGE-004-InputCaps 例子分析

InputCaps处理外部输入的事件 该例子主要由两部分内容: 外部输入事件获取 ​ 可以处理keyboard、mouse、joystick、touch、sensor的输入事件 显示一个ui图标按钮 Input 定义监听事件类型: KlayGE::InputActionDefine actions[] {InputActionDefin…

【opencv】图像数字化——认识OpenCV中的Mat类(4 访问单通道Mat对象中的值)

4 访问单通道Mat对象中的值 4.1使用成员函数at() 格式&#xff1a;m.at(r,c)&#xff0c;访问第r行c列 #include <opencv2/core/core.hpp> #include<iostream> using namespace std; using namespace cv; int main() {//构造矩阵Mat m (Mat_<int>(3,…

浅浅了解一下JWT

JWT 介绍 JWT 是 JSON Web Token 的缩写&#xff0c;JWT 本身没有定义任何技术实现&#xff0c;它只是定义了一种基于 Token 的会话管理的规则&#xff0c;涵盖 Token 需要包含的标准内容和 Token 的生成过程。 首先&#xff0c;俺们先来看看一个 JWT Token 长这样。 eyJhbGci…

burpsuite 插件编写入门

文章目录 一、什么是扩展 / 插件&#xff1f;实现一个简单的 插件/扩展 系统 二、burp 的扩展三、开发步骤总结 一、什么是扩展 / 插件&#xff1f; 关于这个话题&#xff0c;知乎有一个回答题不错&#xff0c;主要也是引用了wikipedia 插件/扩展&#xff0c;是向现有的计算机…

Go的Gin框架拦截器实现登录认证结合JWT实现会话记录

JWT jwt全称 Json web token&#xff0c;是一种认证和信息交流的工具。 授权&#xff1a;这是使用JWT最常见的场景。一旦用户登录&#xff0c;每个后续请求都将包含JWT&#xff0c;允许用户访问该令牌允许的路由、服务和资源。 信息交流&#xff1a;JSON Web令牌是在各方之间…

3.redis-事务

01-Redis事务概述 概述 Redis事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化放到一个队列中按顺序地执行。事务 在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 不支持ACID ①atomicity, 原子性, redis事务中的指令执行失败, 不影响后…

记一次 腾讯会议 的意外崩溃分析

一&#xff1a;背景 1. 讲故事 前段时间在用 腾讯会议 直播的时候&#xff0c;居然意外崩溃了&#xff0c;还好不是在训练营上课&#xff0c;不然又得重录了&#xff0c;崩完之后发现 腾讯会议 的 bugreport 组件会自动生成一个 minidump&#xff0c;截图如下&#xff1a; 作…

tcpdump 抓包

一、Tcpdump抓包 抓取端口为2008的数据包 抓包文件内容 抓取到的内容保存在文件中&#xff0c;可以通过wireshark分析 二、tcpdump的一些命令 tcpdump和ethereal可以用来获取和分析网络通讯活动&#xff0c;他们都是使用libpcap库来捕获网络封包的。 ​在混杂模式下他们可以监…

Oracle-主备切换问题(BUG-31747989)

背景: 用户在Oracle Rac 19.6版本通过switchover方式进行主备切换&#xff0c;在备切主完成之后&#xff0c;进行open的过程中&#xff0c;状态长时间无法完成疑似hang住。 问题: ​ Oracle Rac 19.6版本通过switchover方式进行主备切换,切换完成之后进行open&#xf…

100个开源手写人工智能算法(持续更新中)

你是否曾经对开源框架中算法的运行原理感到好奇&#xff1f;又是否曾经想过使用自己写的算法来进行机器学习&#xff1f; 现在&#xff0c;向您推荐一款基于 Python 语言的开源手写机器学习算法项目&#xff01; https://github.com/yuluxingchen/AI/ 这个项目中预计将包含了…

【10 浅学jsp】

浅学 jsp 一、jsp1. jsp介绍2. JSP执行流程3. JSP的本质还是Servlet4. JSP语法4.1 注释4.2 代码块4.3JSP表达式4.4JSP声明 5. JSP指令page 指令include 包含指令包含 其他页面taglib 引入外部标签库 6. JSP细节6.1 pageContext 页面域对象 7. Servlet四大域对象小结8. MVC模型 …

利用MFC实现一个托盘功能

文章目录 1.将主窗口隐藏起来&#xff0c;并移除任务栏图标显示2. 制作系统托盘3. 右键托盘得到信息4. 选择信息栏触发事件5. 添加开机自启动与关闭开机自启动OnSetPowerBoot与OnCancelPowerBoot 右键点击托盘&#xff0c;弹出如下的图标 1.将主窗口隐藏起来&#xff0c;并移除…

Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130264470 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子网络科技博…

怎么批量把heic格式转化jpg,3招快速解决

怎么批量把heic格式转化jpg&#xff1f;heic是一种新型的图像文件格式&#xff0c;是苹果独家搞出来的一个图片格式&#xff0c;它小巧玲珑&#xff0c;而且图像质量超好&#xff0c;专门给iOS11系统用户用的。这种格式比老JPEG更厉害&#xff0c;不仅图片质量好&#xff0c;而…

如何减少电脑内存占用或优化内存?

内存(Memory)是计算机一个重要的组成部件&#xff0c;也称为内存储器或主存储器。它可以暂时存放CPU中运算的数据&#xff0c;以及与硬盘等外部存储器交换的数据&#xff0c;是CPU和硬盘之间的桥梁。若电脑内存占用过高&#xff0c;这会影响到电脑运行的速度&#xff0c;那该如…

Redis的哈希槽分区

目录 1. 一致性算法分区的缺点2. 哈希槽分区3. Redis为什么是16384个槽 1. 一致性算法分区的缺点 可以参考一致性哈希算法分区这篇文章 2. 哈希槽分区 Redis集群中内置了16384个哈希槽。redis会根据服务器节点数量大致均等的将哈希槽映射到不同的节点 当写入一条数据&#x…

Java版本的工程项目管理系统源代码之工程项目管理系统面临的挑战

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 ​系统定义 工程项目管理企业不直接与该工程项目的总承包…

UE4/5多人游戏详解(六、多人游戏插件的菜单,创建会话设置和加入)

目录 简单的菜单 创建新的c类&#xff1a; 这里可能出现的报错&#xff1a; 菜单设置&#xff1a; 代码&#xff1a; UI创建&#xff1a; C类中创建按钮的指针&#xff1a; 子系统创建 创建会话函数&#xff1a; 创建会话后前往大厅&#xff1a; 重载函数 变量添加…