【Pandas驯化-10】一文搞懂Pandas中一列混合多种数据类型to_numeric、select_dtypes处理

news2024/10/25 12:20:05

【Pandas驯化-10】一文搞懂Pandas中一列混合多种数据类型to_numeric、select_dtypes处理
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 相关内容文档获取 微信公众号
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

  • 🎯 1. 基本介绍
  • 💡 2. 使用方法
    • 2.1 pd.to_numeric函数使用
    • 2.2 pd.isnull函数过滤
    • 2.3 提取非数值型数据
  • 🚀 3. 高阶用法
  • 🔍 4. 注意事项
  • 🔧 5. 总结

下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  在实际工作中,由于数据采集的失误或者人工处理的时候不当,会造成原始数据类型经常会遇到一列数值型数据中,混杂一些字符串类型的数据,当我们要对这列数据进行统计运算时,就会报相应的错误,当遇到这样问题的时候,如果我们是在进行数据分析,需要找出具体是哪些行存在这样的问题,从而去修改原始数据的采集,而在进行数据建模或者特征提取时,需要对其进行删除或者采用均值数据进行修改,具体的骚操作方法如下:
  pd.to_numeric 函数尝试将输入的数据转换为数值类型。当 errors='coerce' 参数被设置时,任何不能被转换为数值的数据将被赋值为 NaN(Not a Number),这是一种特殊的浮点数值,用于表示数据缺失。
  pd.isnull 函数用于识别数据中的缺失值,并返回一个布尔类型的 Series 或 DataFrame,其中的 True 表示对应的数据是 NaN。

💡 2. 使用方法

2.1 pd.to_numeric函数使用

  使用pd.to_numeric函数将 clos1 列中的数据尝试转换为数值型,非数值型数据将被转换为 NaN。具体的代码如下所示:

import pandas as pd

df = pd.DataFrame({
    'clos1': [1, 2, '3', 'four', 5, None, '7.5', 'eight']
})

   clos1
0      1
1      2
2      3
3   four
4      5
5    None
6    7.5
7   eight

df['clos1'] = pd.to_numeric(df['clos1'], errors='coerce')

    clos1
0    1.0
1    2.0
2    3.0
3    NaN
4    5.0
5    NaN
6    7.5
7    NaN

2.2 pd.isnull函数过滤

  通过上述的函数可以将不同类型的数据赋值为空,接着我们可以使用isnull函数对其进行过滤,具体为:

nan_mask = pd.isnull(df['clos1'])

print(nan_mask)

0    False
1    False
2    False
3     True
4    False
5     True
6    False
7     True
Name: clos1, dtype: bool

2.3 提取非数值型数据

  通过布尔索引,我们可以提取出原始数据中那些被转换为 NaN 的非数值型数据。具体的用法如下所示:

non_numeric_data = df[nan_mask]['clos1'].unique()
print(non_numeric_data)

array(['four', None, 'eight'], dtype=object)

  

🚀 3. 高阶用法

  征工程中经常需要对数据类型进行转换pandas中astype可以为你解忧,在nlp比赛中各列的数据差异比较大时,需要选择所需的数据类型则可以使用select_dtypes,具体用法为:

# 如果col1列为数值的字符串类型,可以用astype(float32)转为浮点型 
df["col1"] = df["col1"].astype(float32) 
# 如果col不是字符串类型,但是想使用字符串的运算,可以用astype(str)转为字符串类型 df["col1"] = df["col1"].astype(str) 
# 选择各列数据类型为数值型的数据,以及删除某个类型的数据 
need_type = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64'] df = df.select_dtypes(indclude=need_type) 
delete_type = ['int'] 
df= df.select_dtype(exclude=delete_type) 

🔍 4. 注意事项

  对上述的各个函数在使用的过程中需要注意的一些事项,不然可能会出现error,具体主要为:

  • 使用 pd.to_numeric 转换时,如果数据中包含 NaN 或 None,根据 errors 参数的设置,它们可以被保留或转换为 NaN。
  • errors=‘coerce’ 强制所有无法转换的值变为 NaN,这有助于数据清洗和后续处理。
  • pd.isnull 仅能用于识别 NaN,如果需要识别其他类型的缺失值(如 None),需要先进行适当的转换。

🔧 5. 总结

  本文介绍了如何使用 Pandas 的select_dtype、 pd.to_numeric 与 errors=‘coerce’ 参数,以及 pd.isnull 来找出数值型数据中混杂的非数值型数据。通过这种方法,我们可以快速识别并处理数据集中的非数值型数据,为进一步的数据分析和处理打下坚实的基础。

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

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

相关文章

Exposure X7软件安装包下载 丨不限速下载丨亲测好用

根据使用者情况表明Exposure的设计鼓励您进行创造性的工作,使用涂刷和遮罩工具将效果有选择地应用于图片的特定区域,非破坏性图层使您能够混合预设和调整,以获得无尽的外观。我们都知道Exposure是用于创意照片编辑的最佳图片编辑器&#xff0…

【漏洞复现】红帆iOffice.net wssRtSyn接口处存在SQL注入

【产品&&漏洞简述】 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综…

大模型与知识图谱:联合打造智能未来,案例解析让你大开眼界!

在数字化浪潮中,大模型和知识图谱作为人工智能领域的两大核心技术,正逐渐改变着我们的生活。大模型,是一种通过大规模数据训练得到的深度学习模型,具备强大的语义理解和推理能力;而知识图谱,则是以图状结构…

如何计算结构体变量的大小(结构体内存对齐)

目录 一、对齐规则 二、结构体大小计算三步曲 第一步:确定对齐数 第二步:根据对齐数确定每个成员相对位置 第三步:通过最大对齐数来确定结构体最终大小 三、内存浪费 四、为什么要存在内存对齐 在C语言中,变量由于类型不同…

由于“xinput1_3.dll缺失“而导致的错误有哪些解决办?分享几种修复xinput1_3.dll丢失的方法

当您尝试运行某些游戏或程序时,可能会遇到由于"xinput1_3.dll缺失"而导致的错误。这个DLL文件是MicrosoftDirectX的一部分,用于处理游戏中的输入设备,如操纵杆和游戏手柄。下面我们将探讨为何电脑会缺少xinput1_3.dll文件&#xff…

深度学习算法informer(时序预测)(四)(Decoder)

一、DecoderLayer架构如图(不改变输入形状) 二、Decoder整体 包括两部分 1. 多层DecoderLayer 2. 层归一化 代码如下 class DecoderLayer(nn.Module):def __init__(self, self_attention, cross_attention, d_model, d_ffNone,dropout0.1, activati…

阿里云 hpc8ae 实例商业化发布详解

云布道师 引言:本文整理自阿里云高性能计算产品负责人黄泽辉在【HPC 优化实例商业化发布会】中的分享。 近日,全球领先的云计算厂商阿里云宣布最新 HPC 优化实例 hpc8ae 的正式商业化,该实例依托阿里云自研的「飞天CIPU」架构体系&#xff…

java后端方法地址组成解析

本篇文章旨在记录后端方法被调用时,是如何组成的,以及组成的部分。 提示:以下是本篇文章正文内容,下面案例可供参考 一、后端方法地址是什么? 示例:http://127.0.0.1:8080/user/info 如果携带了路径参数…

RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-06-19)

【说明】 1、RTX5全家桶的优势就是简单易用,初学的话,上手很快,稳定性也是杠杠的,且容易做稳定。 2、同时RTX5也是有汽车级,工业级,医疗和铁路安全认证,只是安全级别比ThreadX要稍微低些。 3…

数据量大、类型多!数据资产管理如何确保安全合规“不掉队”?

随着数字化进程加速与企业业务不断扩展,数据量呈爆炸式增长,数据类型也变得日益多样。大规模的数据积累在为企业带来丰富的信息资源,推动业务创新发展的同时,也为企业数据资产管理带来多方影响。 在政策引导和市场推动下&#xff…

Covalent实现对1000亿笔链上交易解析,支持AI长期数据可用性

在区块链与人工智能(AI)交汇处,讨论往往集中于去中心化推理和去中心化训练等方面。然而,这一数据的关键组成部分却一直未得到足够的重视。一个主要问题是:我们如何保护 AI 模型中的数据不受偏见和操纵的影响&#xff1…

网管工作实践_02_IP/MAC地址管理工具

1、ipconfig命令格式及参数 ipconfig是内置于Windows的TCP/IP应用程序,用于显示本地计算机网络适配器的MAC地址和IP地址等配置信息,这些信息一般用来榆验手动配置的TCP/IP设置是否正确。当在网络中使用 DHCP服务时,IPConfig可以检测计算机中分…

【阿里云服务器】【弹性云服务ECS】通过ssh登录远程服务器

一、操作系统 使用Windows11主机上的Ubuntu子系统,如下图所示: 二、云服务器登录方法 需知道:服务器ip地址、登录名和自己设置的登录密码: 上述系统用户名为root,需要在Ubuntu子系统中同样切换至root用户&#xff…

php 做一个文件下载服务器,得避免跨路径工具,安全很重要

任务 当使用PHP编写一个文件下载服务器时,安全性是非常重要的。以下是一些基本的步骤和最佳实践,以确保您的文件下载服务器是安全的,并且与CDN加速友好: 文章目录 任务基本要求:Nginx如何配置使用X-Sendfile或X-Acce…

推动 AI/ML 创新:使用 MinIO 的高性能对象存储构建特征存储

MinIO 为全球 S3 和对象存储设定了标准,并已成为实现 AI 代理和功能存储集成的关键参与者。随着组织努力利用 AI 的力量来推动创新并获得竞争优势,高效数据管理的重要性以及将 AI 代理无缝集成到现有工作流程中的能力变得至关重要。在本文中,…

RabbitMQ的简单使用 —— Python篇

(一)RabbitMQ的简介 RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件。消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完…

C++初学者指南第一步---9.函数

C初学者指南第一步—9.函数 文章目录 C初学者指南第一步---9.函数1.输入和输出1.1第一个例子1.2返回类型1.3函数参数常量参数默认值参数 1.4函数重载 2.函数执行2.1递归2.2 声明和定义 3.函数设计3.1约定3.2 特性[[nodiscard]] (C17)3.3 不抛出异常保证&…

C语言入门2-数据类型、运算符和表达式

变量命名 命名规范 只能由字母(含"_")和数字组成;首字母不能是数字;不能与关键字重名,例如float、double和if等。 注意事项 不使用"_"开头,因为很多库函数这样命名,容易…

【Java】已解决java.sql.SQLRecoverableException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLRecoverableException异常 在Java的数据库编程中,java.sql.SQLRecoverableException是一个重要的异常,它通常表示一个可以恢复的SQL异常。…

思维导图之计算机网络整体框架

高清自行访问:计算机网络整体框架 (yuque.com)