Pandas数据清理

news2024/9/24 9:24:45
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景

介绍

如果您喜欢数据科学,那么数据清理对您来说可能听起来像是一个熟悉的术语。如果没有,让我向你解释一下。我们的数据通常来自多个资源,并不干净。它可能包含缺失值、重复项、错误或不需要的格式等。对这些混乱的数据运行实验会导致不正确的结果。因此,有必要在将数据馈送到模型之前准备数据。通过识别和解决潜在的错误、不准确和不一致来准备数据称为数据清理

在本教程中,我将引导您完成使用 Pandas 清理数据的过程。

数据

我将使用著名的鸢尾花数据集。鸢尾花数据集包含三种鸢尾花的四个特征的测量值:萼片长度、萼片宽度、花瓣长度和花瓣宽度。我们将使用以下库:

  • pandas: 用于数据操作和分析的强大库
  • Scikit-learn: 提供用于数据预处理和机器学习的工具

数据清理步骤

1. 加载数据集

使用 Pandas 的 read_csv() 函数加载鸢尾花数据集:

column_names = ['id', 'sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species']
iris_data = pd.read_csv('data/Iris.csv', names= column_names, header=0)
iris_data.head()

输出:

编号sepal_lengthsepal_widthpetal_lengthpetal_width物种
15.13.51.40.2鸢尾花
24.93.01.40.2鸢尾花
34.73.21.30.2鸢尾花
44.63.11.50.2鸢尾花
55.03.61.40.2鸢尾花

header=0 参数指示 CSV 文件的第一行包含列名(标题)。

2. 浏览数据集

为了深入了解我们的数据集,我们将使用 pandas 中的内置函数打印一些基本信息

print(iris_data.info())
print(iris_data.describe())

输出:


RangeIndex: 150 entries, 0 to 149
Data columns (total 6 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   id            150 non-null    int64  
 1   sepal_length  150 non-null    float64
 2   sepal_width   150 non-null    float64
 3   petal_length  150 non-null    float64
 4   petal_width   150 non-null    float64
 5   species       150 non-null    object 
dtypes: float64(4), int64(1), object(1)
memory usage: 7.2+ KB
None

熊猫数据清理


iris_data.describe() 的输出

info() 函数可用于了解数据帧的整体结构、每列中非空值的数量以及内存使用情况。而汇总统计数据则提供了数据集中数值要素的概述。

3. 检查类分布

这是了解类如何在分类列中分布的重要步骤,这是分类的重要任务。您可以使用 pandas 中的 value_counts() 函数执行此步骤。

print(iris_data['species'].value_counts())

输出:

Iris-setosa        50
Iris-versicolor    50
Iris-virginica     50
Name: species, dtype: int64

我们的结果表明,数据集是平衡的,每个物种的表示数量相等。这为所有 3 个班级的公平评估和比较奠定了基础。

4. 删除缺失值

由于从 info() 方法中可以明显看出我们有 5 列没有缺失值,因此我们将跳过此步骤。但是,如果遇到任何缺失值,请使用以下命令来处理它们:

iris_data.dropna(inplace=True)

5. 删除重复项

重复项可能会扭曲我们的分析,因此我们会将它们从数据集中删除。我们将首先使用下面提到的命令检查它们的存在:

duplicate_rows = iris_data.duplicated()
print("Number of duplicate rows:", duplicate_rows.sum())

输出:

Number of duplicate rows: 0

此数据集没有任何重复项。尽管如此,可以通过 drop_duplicates() 函数删除重复项。

iris_data.drop_duplicates(inplace=True)

6. 独热编码

对于分类分析,我们将对物种列执行独热编码。执行此步骤是由于机器学习算法倾向于更好地处理数值数据。独热编码过程将分类变量转换为二进制(0 或 1)格式。

encoded_species = pd.get_dummies(iris_data['species'], prefix='species', drop_first=False).astype('int')
iris_data = pd.concat([iris_data, encoded_species], axis=1)
iris_data.drop(columns=['species'], inplace=True)

熊猫数据清理


图片来源:作者

7. 浮点值列的规范化

归一化是将数值特征缩放为平均值为 0 且标准差为 1 的过程。执行此过程是为了确保要素对分析的贡献相同。我们将规范化浮点值列以实现一致的缩放。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
cols_to_normalize = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
scaled_data = scaler.fit(iris_data[cols_to_normalize])
iris_data[cols_to_normalize] = scaler.transform(iris_data[cols_to_normalize])

熊猫数据清理


规范化
后 iris_data.describe() 的输出

8. 保存已清理的数据集

将清理后的数据集保存到新的 CSV 文件。

iris_data.to_csv('cleaned_iris.csv', index=False)

总结

祝贺!您已成功使用 pandas 清理了第一个数据集。在处理复杂数据集时,您可能会遇到其他挑战。但是,此处提到的基本技术将帮助您入门并准备数据以进行分析。

原文链接:Pandas数据清理 (mvrlink.com)

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

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

相关文章

视频gif怎么制作?一招教你视频制作gif

gif动画图片是当下表达情感的一种流行方式。想要将一个有趣的视频制作成一个gif动态图片的时候,要怎么操作呢?很简单,通过使用gif动态图片制作(https://www.gif.cn/)工具,上传MP4格式的视频,一键…

无涯教程-JavaScript - COSH函数

描述 COSH函数返回数字的双曲余弦值。 语法 COSH (number)争论 Argument描述Required/OptionalNumberAny real number for which you want to find the hyperbolic cosine.Required Notes 双曲余弦的公式为- $$COSH\left(z\right)\frac {e ^ 2 e ^ {-2}} {2} $$ 适用性…

查看栈内存 调试方法

一、Memory窗口 1、打开此窗口,查看运行时内存数据 2、栈顶、栈底 输入 esp ebp,就可确定此函数栈的大小 在地址处,输入esp, 跳到此栈的栈顶 ESP:栈指针寄存器(extended stack pointer),其内存放着一个指针,该指…

微服务的艺术:构建可扩展和弹性的分布式应用

文章目录 什么是微服务架构?微服务的设计原则1. 基于业务边界划分服务2. 松耦合和强内聚3. 自动化测试和部署4. 监控和日志5. 弹性设计 微服务的实施细节1. 服务发现示例代码:使用Consul进行服务发现 2. 负载均衡示例代码:Nginx配置负载均衡 …

Qt5开发及实例V2.0-第一章Qt概述

Qt5开发及实例V2.0-第一章-Qt概述 第一章-Qt概述1.1 什么是Qt1.2 Qt 5的安装1.2.1 下载安装Qt 51.2.2 运行Qt 5 Creator1.2.3 Qt 5开发环境 1.3 Qt 5开发步骤及实例1.3.1 设计器Qt 5 Designer实现1.3.2 代码实现简单实例 L1.2 Qt 5安装:概念解析L1.3 Qt 5开发步骤及…

66、Spring Data JPA 的基本功能--CRUD 和 分页

Spring Data JPA 的基本功能–CRUD 和 分页 ★ Spring Data JPA开发 (1)配置数据源。 (2)配置JPA相关属性,这些属性由JpaProperties类负责处理。——上面2步都在application.properties中配置即可。 (3&a…

电脑提示丢失MSVCP140.dll是什么意思,总结5个MSVCP140.dll丢失的解决分享

在计算机使用过程中,有时候会出现一些异常情况,比如丢失 MSVCP140.dll 文件。MSVCP140.dll 是 Microsoft Visual C 2015 Redistributable 的一部分,它包含了一些在 C 编程时需要的函数和类。许多程序和游戏都需要依赖这个文件来正常运行。一旦…

通过RSYNC在linux和windows间同步文件

通过RSYNC在linux和windows间同步文件 下载windows版本rsync下载后是一个zip的压缩包,直接解压就可使用配置windows到linux的秘钥拷贝公钥文件到linux服务器,实现免密配置同步命令结合windows计划任务实现定时同步文件 下载windows版本rsync 下载链接 h…

无涯教程-JavaScript - OFFSET函数

描述 OFFSET函数返回对范围的引用,该范围是一个单元格或单元格范围中指定的行数和列数。 返回的引用可以是单个单元格或单元格范围。您可以指定要返回的行数和列数。 语法 OFFSET (reference, rows, cols, [height], [width]) 争论 Argument描述Required/OptionalReferenc…

Amazon Lightsail——兼具亚马逊云科技的强大功能与 VPS 的简易性

对于开发者而言,当你想构建系统架构时,你的面前就出现了两种选择,选择一:花时间去亲手挑选每个亚马逊云科技组件(云服务器、存储、IP 地址等),然后自己组装起来;选择二是只需要一个预…

uniappAndroid平台签名证书(.keystore)生成

一、安装JRE环境 https://www.oracle.com/java/technologies/downloads/#java8 记住下载默认安装地址。ps:我都默认安装地址C:\Program Files\Java\jdk-1.8 二、安装成功后配置环境变量 系统变量配置 AVA_HOME 放到环境变量去 %JAVA_HOME%\bin 三、生成签名证书…

JS中BigInt的使用

JS中BigInt的使用 BigInt是一种内置对象,它提供了一种方法来表示大于2^53 - 1的整数,通俗来讲就是提供了一种可以表示任意大整数的方法,当我们使用Number来表示一个超过了2 ^53 - 1的整数的时候,会出错。所以此时我们需要使用Big…

亚马逊小家电出口美国、欧盟、日本需要做什么认证?

海关总署统计数据显示,2023年1-6月,中国家电出口172893.1万台,同比增长1.4%,出口额2967亿元,同比增长5.2%。据奥维云网数据显示,2023年1-6月厨房小家电(包含品类:咖啡机、电饭煲、电…

Python脚本批量造数据、跑定时任务协助测试

目录 批量造数据 结合pythonpytestfixture 实现定时任务接口调用 目录结构 定时任务 批量造数据 连接Mysql的信息 1 import pymysql2 # 数据库连接信息3 # 多个库要有多个conn4 conn pymysql.connect(5 host"主机",6 user"用户名",7 pas…

【Redis】Redis 的学习教程(十)之使用 Redis 实现消息队列

消息队列需要满足的要求: 顺序一致:要保证消息发送的顺序和消费的顺序是一致的,不一致的话可能会导致业务上的错误消息确认机制:对于一个已经被消费的消息(已经收到ACK)不能再次被消费消息持久化:要具有持久化的能力&…

ccfcsp9.17

ccf csp第二题前缀和优化 n个ti变化 其中格式是 1 ti或者2 ti 分别表示拉长ti和逆时针旋转ti m个查询 其中格式是 ti到tj的变化(be en) x y初始坐标 输出格式 每个查询x y之间空格&#xff0c;查询\n 时间复杂度On #include<stdio.h> #include<stdlib.h> #includ…

人民日报发文祝贺,这位作者是藏不住了!

近日&#xff0c;人民日报特地发文祝贺一位90后短视频博主任大学副教授&#xff01; 这是哪位短视频博主这么有排面&#xff0c;竟然被人民日报专门发文祝贺呢&#xff1f; 她就是短视频科普“弦论”走红的周思益&#xff01; 同时也是《弦论小女孩的相对论课》一书的作者~~…

如何防止公司代码泄露(如何防止员工拷贝代码)

随着互联网的发展&#xff0c;越来越多的企业开始注重知识产权的保护&#xff0c;其中源代码是企业的重要资产之一。然而&#xff0c;一些员工可能会通过各种手段获取企业的源代码&#xff0c;这对企业的竞争力和商业机密构成了威胁。那么&#xff0c;企业应该如何防止员工拷贝…

文件夹高效改名,批量设置文件夹仅显示编号无名称的方法“

在数字化世界中&#xff0c;文件夹的命名和编号管理对于提高工作效率和保持文件组织的条理性起着至关重要的作用。你是否曾经在杂乱无章的文件系统中迷失&#xff0c;或者在寻找重要文件时感到困惑&#xff1f;如果你回答是肯定的&#xff0c;那么是时候采取一种更有效的文件夹…

亚马逊美国站小家电UL60335-1测试报告办理

有很多做亚马逊平台的客户反映产品因为没有UL认证&#xff0c;被下架了&#xff0c;怎么办&#xff1f; 因为大家都知道UL认证并没有那么好拿&#xff0c;随便一个产品做下来费用10W&#xff0c;一年需要对工厂进行4次审核&#xff0c;而且非常严格&#xff0c;普通工厂根本没…