【Pandas驯化-09】一文搞懂Pandas中字符串用法extract、zfill、isdigit

news2024/11/18 15:44:10

【Pandas驯化-09】一文搞懂Pandas中字符串用法extract、zfill、isdigit
 
本次修炼方法请往下查看
在这里插入图片描述

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

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

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

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

  • 🎯 1. 基本介绍
  • 💡 2. 使用方法
      • 2.1 大小写转换lower
      • 2.2 字符串匹配contains函数
      • 2.3 检查字符串内容isdigit、isalpha、isalnum
      • 2.3 正则提取和补零操作
  • 🔍 4. 注意事项
  • 🔧 5. 总结

下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  Pandas 提供了一个非常强大的字符串处理功能,通过 str 访问器,可以对 Series 或 DataFrame 中的字符串类型列进行各种操作,如大小写转换、字符串分割、正则表达式匹配、检查字符串内容、计数、搜索、长度获取、正则提取以及补零操作。这些操作使得文本数据的处理变得简单而高效。

💡 2. 使用方法

  对于本文中的函数的使用前提就是这列的数据格式为str类型,如果不是该类型,需要将其转化为str类型即可,具体的做法为:

    df['cols'] = df['cols'].astype('str')

2.1 大小写转换lower

  使用 str.lower() 和 str.upper() 进行大小写转换。。以下是一个基本的使用示例:

import pandas as pd

# 创建包含字符串的 DataFrame
df = pd.DataFrame({
    'Name': ['alice', 'bob', 'charlie'],
    'Email': ['alice@example.com', 'bob@example.com', 'charlie@example.com'],
    'Text': ['hello world', 'HELLO WORLD', 'Hello PyData']
})

      Name               Email               Text
0    alice  alice@example.com      hello world
1      bob    bob@example.com     HELLO WORLD
2  charlie  charlie@example.com     Hello PyData

# 将 Name 列转换为小写
df['Name'] = df['Name'].str.lower()

# 将 Text 列转换为大写
df['Text'] = df['Text'].str.upper()

print(df)

      Name               Email               Text
0    alice  alice@example.com      HELLO WORLD
1      bob    bob@example.com     HELLO WORLD
2  charlie  charlie@example.com  HELLO PYDATA

2.2 字符串匹配contains函数

  使用 str.contains() 函数可以对数据进行正则表达式匹配。具体的用法如下所示:

# 检查 Text 列中是否包含 'PYDATA'
df['ContainsPYDATA'] = df['Text'].str.contains('PYDATA', case=False)

print(df)

      Name               Email               Text Username ContainsPYDATA
0    alice  alice@example.com      HELLO WORLD   alice         False
1      bob    bob@example.com     HELLO WORLD     bob           False
2  charlie  charlie@example.com  HELLO PYDATA  charlie          True

2.3 检查字符串内容isdigit、isalpha、isalnum

  • isdigit(): 检查字符串是否只包含数字。
  • isalpha(): 检查字符串是否只包含字母。
  • isalnum(): 检查字符串是否只包含字母和数字。
  • 具体的用法如下所示:
 df = pd.DataFrame({
    'Values': ['123', 'abc', 'abc123', '!@#']
})

print(df['Values'].str.isdigit())  # 检查是否全为数字
print(df['Values'].str.isalpha())  # 检查是否全为字母
print(df['Values'].str.isalnum())  # 检查是否为字母和数字
0     True
1     True
2     True
3    False
Name: Values, dtype: bool

2.3 正则提取和补零操作

  • extract(): 使用正则表达式提取字符串中的匹配部分。
  • zfill(): 在字符串左侧填充0以达到指定长度。
df['Digits'] = df['Values'].str.extract(r'\d+')  # 提取数字
df['Padded'] = df['Values'].str.zfill(10)  # 左侧补0至长度10

print(df)

  Values  CountA  ContainsABC  Length Digits Padded
0    123       0         False      3    123    000000123
1   abc       1          True      3     NaN      000000abc
2 abc123       1         False      6  123    00abc123
3   !@#       0         False      3     NaN        !@#

  

🔍 4. 注意事项

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

  • 确保使用 str 方法时,列的数据类型是字符串。
  • extract() 方法需要正则表达式的模式匹配,如果列中的某些值不匹配,结果将会是 NaN。
  • zfill() 方法会根据指定的宽度在字符串左侧填充0,如果字符串本身的长度大于或等于指定宽度,则不会填充。
  • 一些 str 方法返回的是 Pandas 的 Series 或 DataFrame,可能需要进一步处理,如使用 .str.get() 获取分割后的特定部分。
  • 当使用 str.contains() 进行正则表达式匹配时,可以通过 na 参数指定如何处理缺失值。

🔧 5. 总结

  Pandas 的 str 访问器为字符串类型的数据处理提供了丰富的方法,括检查字符串内容、计数、搜索、获取长度、正则提取和补零操作。通过本文的代码示例和输出结果,我们可以看到如何使用这些方法来处理文本数据。掌握这些技巧可以帮助你更高效地进行数据分析和处理。希望这篇博客能够帮助你更好地理解并应用 Pandas 的字符串操作方法。

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

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

相关文章

tiaoshixitong

data_interval : 当是ubus 时 重新赋值为 3;当是ws 时 重新赋值为 20; 1. 如何理解data_tik ? 在函数can_packet_check_timer 定时can发送函数里面,data_tik 作为倒计时时间,当倒计时间到,则发送。…

05 部署YUM软件仓库

5.1部署YUM软件仓库 5.1.1准备网络安装源 YUM软件仓库通常借助于HTTP或FTP协议来发布,这样可以面向网络中的所有客户机提供软件源服务。 1.准备软件仓库目录 在Center 7 系统的安装光盘中,已针对软件目录Packages建立好repodata数据,因此…

【Unity】实现分屏开发

前言: 最近有个项目二期需要做分屏开发,今天恰好研究一下为后续的项目做个准备。 原理 整体的实现还是蛮简单的,主要是通过camera的一个targetDisplay属性进行设置 可以看到unity支持最多八个分屏 实现 场景搭建 ,这里直接使…

ubuntu18.0.4安装gradio踩坑记

Collecting pandas (from gradio) Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/c3/e2/00cacecafbab071c787019f00ad84ca3185952f6bb9bca9550ed83870d4d/pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl (9.5MB) 100% |████████████████…

智警杯数据库学习(1)

CentOS中安装MySQL数据库 检测系统是否自带安装 MySQL 首先检查是否自带mysql rpm -qa | grep mysql 如果有删除 rpm -e mysq 未安装,开始安装 进入software目录,解压安装包mysql5.7.25 cd /root/software tar -xvf mysql-5.7.25-1.el7.x86_64.rp…

RPA案例学习

京东采集数据 一、搜索商品 流程块 相对应源代码 二、抓取数据 流程块 相对应源代码

字节扣子模型广场,给AI大模型搭了一座擂台

前言 6月11日凌晨,在苹果开发者大会WWDC 2024上,苹果发布iOS 18,同时首次公布了苹果智能(Apple Intelligence,简称 AI)。在近 40 分钟的时间内,苹果差不多提到了 60 次 Apple Intelligence,基于…

数据库复习——范式(Normal Form)

因为上课的时候一直在摸鱼没有听懂,所以复习的时候理解一下数据库中关于范式的相关知识点。涉及范式的定义,以及给定一个函数依赖集判断是那种范式的方法。 范式 迄今为止一共提出了 6 6 6 种范式,他们的关系是 5 N F ⊂ 4 N F ⊂ B C N F …

ubuntu设置静态ip地址

首先,查看ip地址可以使用: ifconfig 例如,出现如下结果: 然后,需要查看本地的gateway以及dns,可以使用: nmcli device show例如: 接下来说明一下如何设置静态ip:

浅谈配置元件之JDBC连接配置

浅谈配置元件之JDBC连接配置 通过使用“JDBC连接配置”配置元件(JDBC Connection Configuration),您可以轻松地在JMeter测试计划中集成数据库交互能力。本指南将详细介绍如何设置和使用此配置元件来连接数据库并执行SQL查询。 1. 准备工作 …

2002-2022年各省人口总抚养比数据(人口抽样调查)

2002-2022年各省人口总抚养比数据(人口抽样调查) 1、时间:2002-2022年 2、指标:总抚养比 3、来源:国家统计局、统计年鉴 4、范围:31省, 5、缺失情况:无缺失,其中201…

视频监控统一管理平台LntonCVS安防视频监控系统视频汇聚方案

LntonCVS平台最初被设计为一个以视频汇聚为核心的平台。那么,什么是视频汇聚平台,以及它是如何处理视频资源的呢?简单来说,视频汇聚平台能够从不同的视频源(如直播和点播)收集、整合和展示视频内容。以下是…

SAS:从零开始用proc report出人口统计学表

目的:如何生成如下图所示的人口统计学的表格 要点: 1、连续型变量(基线体重、基线身高等)需要展示例数、均值、中位值、最小值、最大值;离散型变量(性别、民族等)需要展示例数和百分比。这些统…

application/x-www-form-urlencoded和json的区别

application/x-www-form-urlencoded 和 application/json 是两种不同的数据格式,常用于HTTP请求中传递数据。 它们各自的特点和使用场景如下: 1. application/x-www-form-urlencoded •特点:这是一种传统的表单提交时采用的编码类型&#x…

Jenkins+K8s实现持续集成(一)

镜像仓库的搭建 docker run -d \--restartalways \--name registry \-p 5000:5000 \-v /root/devops/registry/data:/var/lib/registry \registry安装完之后,执行下面命令可以看到镜像仓库已经安装成功 docker ps 然后在浏览器上输入下面地址进行访问 http://ip:…

高性价比MOS推荐:惠海HC090N10L,HC025N10L,100V高耐压,12V/24V加湿器和3.7V打火机专用MOS

加湿器MOS应用特点(HC090N10L,HC025N10L): 沟槽工艺,抗性好,不容易烧 可应用在1.8MHZ,2.4MHZ和3MHZ频率的加湿器 100V高耐压,MOS不容易尖峰击穿 加湿器缺水干烧MOS不易坏 加湿器出雾量大 …

路由框架 ARouter 原理及源码解析

文章目录 前言一、ARouter 简介二、ARouter 使用1.添加依赖和配置2.添加注解3.初始化SDK4.发起路由操作 三、ARouter 成员1. PostCard 明信片2. Interceptor 拦截器3. Warehouse 路由仓库4. ARouter 注解处理 四、ARouter 原理五、ARouter 源码分析1. ARouter 初始化1.1 ARoute…

美国ARC与延锋安全合作,推动汽车安全气囊技术新突破

在汽车安全领域,安全气囊作为关键被动安全配置,对于保障乘客生命安全至关重要。随着汽车工业的快速发展和科技创新的持续推进,安全气囊技术的升级与革新显得尤为重要。2022年10月25日,美国ARC公司与延锋安全携手合作,共…

产品交付能力提升的探索与分享

在当前激励的市场竞争环境下,对项目交付的成本和毛利要求越来越高。如何能快速高效地完成项目交付已然成为我们矢志追求的目标。抛开人为因素对项目交付效率的影响,产品本身的交付能力才是关键。因此,在设计新产品时需要考虑其便捷交付性&…