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

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

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

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

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

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 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 的字符串操作方法。

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
pandas,可以使用字符串操作来处理和操作Series或DataFrame字符串数据。pandas提供了一组强大的字符串处理方法,可以方便地进行字符串的拆分、替换、提取等操作。 以下是pandas常用的字符串操作方法: 1. 字符串拆分:使用`str.split()`方法可以将字符串拆分成多个部分,并返回一个包含拆分后结果的Series或DataFrame。可以指定分隔符、拆分的次数等参数。 2. 字符串替换:使用`str.replace()`方法可以将字符串的某个子串替换为另一个子串。可以指定要替换的子串、替换后的子串等参数。 3. 字符串提取:使用`str.extract()`方法可以从字符串提取满足某种模式的子串,并返回一个包含提取结果的Series或DataFrame。可以使用正则表达式来指定提取的模式。 4. 字符串匹配:使用`str.contains()`方法可以判断字符串是否包含某个子串,并返回一个布尔类型的Series或DataFrame。 5. 字符串大小写转换:使用`str.lower()`和`str.upper()`方法可以将字符串转换为小写或大写形式。 6. 字符串去除空格:使用`str.strip()`、`str.lstrip()`和`str.rstrip()`方法可以去除字符串的前导空格、尾部空格或两端空格。 7. 字符串连接:使用`str.cat()`方法可以将多个字符串连接成一个字符串,并返回一个包含连接结果的Series或DataFrame。 这些只是pandas字符串操作的一部分,还有其他更多的方法可以用于字符串处理。你可以参考pandas官方文档来了解更多详细的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只红花猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值