首页 > 其他分享 >pandas中,对某列应用正则表达式

pandas中,对某列应用正则表达式

时间:2024-11-19 10:42:44浏览次数:1  
标签:某列 正则表达式 pattern col1 df str pd data pandas

1.str.contains(),类似re.search(),检查是否包含特定字符串

import pandas as pd

# 示例数据
data = {'col1': ['apple', 'banana', 'cherry', 'pineapple', 'grape']}
df = pd.DataFrame(data)

# 查找包含字母 'a' 的行
pattern = r'a'
df['contains_a'] = df['col1'].str.contains(pattern)

print(df)


col1  contains_a
0      apple        True
1     banana        True
2     cherry       False
3  pineapple        True
4      grape        True

2.str.match(),类似re.match(),检查是否以特定字符串开始

import pandas as pd

# 示例数据
data = {'col1': ['apple', 'banana', 'cherry', 'pineapple', 'grape']}
df = pd.DataFrame(data)

# 完全匹配以 'a' 开头的行
pattern = r'^a'  # 匹配以 'a' 开头的字符串
df['starts_with_a'] = df['col1'].str.match(pattern)

print(df)


col1  starts_with_a
0      apple            True
1     banana           False
2     cherry           False
3  pineapple           False
4      grape           False

3.str.replace(),类似re.sub(),查找特定字符串,并替换

import pandas as pd

# 示例数据
data = {'col1': ['apple', 'banana', 'cherry', 'pineapple', 'grape']}
df = pd.DataFrame(data)

# 替换 'a' 为 '@'
df['replaced'] = df['col1'].str.replace(r'a', '@', regex=True)

print(df)


col1     replaced
0      apple      @pple
1     banana     b@n@n@
2     cherry     cherry
3  pineapple  pine@pple
4      grape      gr@pe

4.str.extract(),类似match.groups(),查找特定字符串,并提取出来

import pandas as pd

# 示例数据
data = {'col1': ['apple123', 'banana456', 'cherry789', 'pineapple000', 'grape987']}
df = pd.DataFrame(data)

# 提取数字部分
pattern = r'(\d+)'  # 匹配数字
df['numbers'] = df['col1'].str.extract(pattern)

print(df)


col1 numbers
0    apple123     123
1   banana456     456
2   cherry789     789
3  pineapple000   000
4    grape987     987

5.str.findall(),类似re.findall(),查找所有匹配的字符串,返回列表

import pandas as pd

# 示例数据
data = {'col1': ['apple123', 'banana456', 'cherry789', 'pineapple000', 'grape987']}
df = pd.DataFrame(data)

# 查找所有数字
pattern = r'(\d+)'  # 匹配数字
df['all_numbers'] = df['col1'].str.findall(pattern)

print(df)


col1   all_numbers
0    apple123         [123]
1   banana456         [456]
2   cherry789         [789]
3  pineapple000     [000]
4    grape987         [987]

  

标签:某列,正则表达式,pattern,col1,df,str,pd,data,pandas
From: https://www.cnblogs.com/xinyangq/p/18554389

相关文章

  • 常用正则表达式
    目录#校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$正数、负数、和小数......
  • 第1章:初识Pandas
    第1章:初识Pandas本章将带领读者初步了解Pandas库,介绍其基本概念、功能特点和安装方法,同时学习Pandas的核心数据结构:Series和DataFrame。通过本章的学习,您将为后续章节的深入学习打下坚实的基础。1.1什么是PandasPandas是Python中用于数据分析和处理的强大工具库,主要功......
  • 正则表达式
    正则表达式:regularexpression,很多时候都简写为regex.正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性.Java中,正则表达式是以字符串的形式体现的.程序示例:publicclassRegexDemo1{publicstaticvoidmain(String[]args){......
  • 基于numpy、pandas、matplotlib的数据分析项目详解(超详细版)
    一、引言在之前的文章中,我们介绍了NumPy、Pandas和Matplotlib这三款强大的数据分析工具。今天,我们将通过一个实际项目来帮助大家更好地掌握这些工具。项目名称为《餐厅订单数据分析》。在这个项目中,我们将分析餐厅的订单数据,以获取有关菜品销售、订单趋势和顾客偏好的有价......
  • 如何使用正则表达式验证域名
    下面是一篇关于如何使用正则表达式验证域名的教程。如何使用正则表达式验证域名简介域名是互联网上网站的地址,每个域名由多个标签(label)组成,标签之间用点.分隔。域名规则有很多细节,但基本要求是:每个标签只能包含字母、数字和短横线-。标签的长度不能超过63个字符。......
  • Python中的正则表达式教程
    一、正则表达式基础1。1。概念介绍正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表......
  • 特殊符号和正则表达式
    特殊符号#的作用1.在一些配置文件中表示注释2.在前导符中表示root用户登录当前系统$的作用1.获取变量内容echo$PAHTecho$LANG!的作用1.强制执行|的作用1.管道符,命令拼接;的作用1.命令分隔符,不管前面的命令是否执行成功,都会去执行后面的命令,个数不限制ls......
  • shell正则表达式、sed基本用法及sed应用案例
    一、正则表达式●可以使用若干符号配合某工具对字符串进行增删改查操作1.1基本正则列表正则符号描述^匹配行首$匹配行尾[]集合,匹配集合中任意单个字符[^]对集合取反.匹配任意字符*匹配前一个字符任意次数【*不允许单独使用】\{n,m}匹配......
  • Python爬虫知识体系-----正则表达式-----持续更新
    数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新:https://blog.csdn.net/grd_java/article/details/140574349文章目录一、正则基础1.为什么使用正则2.正则与re模块简介二、正则表达式1.匹配单个字符与数字2.限定符3.定位符4.选择匹配符5.......
  • 正则表达式re模块
    importre#正则表达式中的元字符:#“.”点通配符表示可以替换表达式中的任意字符,只能代指一个字符,除换行符外print(re.findall("a..","hdhgaqwe"))#“^”只从开始匹配print(re.findall("^a..","ahdhgaqwe"))#“$”只从结尾匹配print(re.findall("a..$","ahdh......