
本文旨在详细介绍如何在pandas dataframe中,针对包含混合数据类型的列,利用正则表达式进行高效的模式提取与识别。我们将重点探讨`str.extract()`方法,并结合`|`操作符构建复杂的正则表达式,以从单个列中同时匹配并提取多个特定字符串模式,从而实现数据的清洗、分类及统计。
在数据分析实践中,我们经常会遇到从外部数据源(如Excel、CSV)导入的数据,其中某些列可能包含多种数据类型或复杂的字符串模式。例如,一个列可能同时包含纯数字、特定标识符(如“EE”、“AA”、“EA+”、“EA-”)、以及其他描述性文本。从这类混合数据列中精确提取所需信息,是数据预处理的关键一步。Pandas库提供了强大的字符串操作功能,特别是结合正则表达式,能够高效地解决这类问题。
首先,我们需要导入Pandas库。为了演示,我们将创建一个模拟的DataFrame,其结构类似于问题中描述的Excel数据,包含一个名为Nachfolger的混合数据列。
import pandas as pd
import numpy as np
# 模拟数据,包含混合类型的 'Nachfolger' 列
data = {
'Nachfolger': [
'54;20', '----', '----', '52', '52;128AA;207;22;223', '----',
'52;24', '28', '----', '52;227;27', '30', '227', '----',
'52;31', '----', '138EE;34', '----', '139EE;36', '----',
'140EE;38', '----', '141EE;40', 'EA+;123', 'EA-;456', 'AA', 'OTHER'
]
}
df = pd.DataFrame(data)
print("原始DataFrame:")
print(df)pandas.Series.str.extract(pat, expand=True)是Pandas中用于从字符串列中提取匹配正则表达式模式的子字符串的强大方法。
当正则表达式包含命名捕获组时,str.extract()会使用这些组名作为返回DataFrame的列名。
最初的尝试可能分别使用str.extract()来匹配不同的模式,例如:
# 初步尝试:分别提取 'EE' 和 'AA'
df['Verknüpfung1_EE'] = df['Nachfolger'].str.extract(r'(EE)')
df['Verknüpfung2_AA'] = df['Nachfolger'].str.extract(r'(AA)')
print("\n初步提取结果 (分开处理):")
print(df[['Nachfolger', 'Verknüpfung1_EE', 'Verknüpfung2_AA']].head(10))这种方法虽然可行,但会创建多个新列,并且如果需要匹配的模式增多,代码会变得冗长。更高效和简洁的方法是使用正则表达式的“或”运算符|来组合多个模式,并在一个str.extract()调用中完成提取。
文心一言
文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。
4061
查看详情
例如,我们要提取EE、AA、EA+或EA-这四种模式。
将这些模式组合起来,我们得到正则表达式 (EE|EA[+-]|AA)。括号()创建了一个捕获组,str.extract()会提取这个组匹配到的内容。
# 使用组合正则表达式提取所有目标模式
# 注意:使用原始字符串 (r'') 避免反斜杠的转义问题
df['Verknüpfung'] = df['Nachfolger'].str.extract(r'(EE|EA[+-]|AA)')
print("\n使用组合正则表达式提取结果:")
print(df[['Nachfolger', 'Verknüpfung']])str.extract()在没有匹配到任何模式时,会返回NaN(Not a Number)。为了后续分析或统计,我们通常需要处理这些NaN值,例如将其填充为0或特定的字符串。
# 填充NaN值,例如填充为0或者空字符串
df['Verknüpfung'] = df['Verknüpfung'].fillna(0) # 或者 df['Verknüpfung'].fillna('')
print("\n填充NaN后的提取结果:")
print(df[['Nachfolger', 'Verknüpfung']])
# 统计每种模式的出现次数
# 过滤掉填充的0,只统计实际提取到的模式
extracted_counts = df[df['Verknüpfung'] != 0]['Verknüpfung'].value_counts()
print("\n提取模式的统计结果:")
print(extracted_counts)# 示例:提取数字和字母部分
df_multi_group = pd.DataFrame({'text': ['ID123_A', 'ID456_B', 'NO_MATCH']})
extracted_multi = df_multi_group['text'].str.extract(r'ID(\d+)_([A-Z])')
print("\n多捕获组提取结果:")
print(extracted_multi)通过本文的介绍,我们学习了如何在Pandas DataFrame中,利用str.extract()方法结合强大的正则表达式,从混合数据列中高效地提取和识别多种字符串模式。掌握|运算符的使用,能够构建简洁且功能强大的正则表达式,极大地简化了数据清洗和预处理的工作。正确处理NaN值并进行统计,能够进一步从提取的数据中获取有价值的洞察。在实际应用中,灵活运用这些技巧,将有助于我们更有效地处理和分析复杂的数据集。
以上就是Pandas DataFrame中混合数据列的正则表达式提取与模式识别的详细内容,更多请关注其它相关文章!
# python
# 正则表达式
# csv
# ai
# 数据清洗
# 多个
# 一言
# excel
# 四平外贸网站推广招聘
# 社保卡营销推广方案
# 葫芦岛优化关键词排名
# 网站推广优化网站设计
# seo外链生成器
# 淘宝代运营seo优化
# 网站百度推广2万多一年
# 保定网站竞价推广怎么做
# 新余网站建设团队
# 莱州网站优化报价多少
# 流式
# 串列
# 如何用
# 这类
# 适用于
# 如何在
# 运算符
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
windows10怎么开启卓越性能_windows10电源选项代码激活
J*aScript与HTML元素交互:图片点击事件与链接处理教程
iPhone14无法连接蓝牙设备如何解决
51漫画网实时入口 51漫画网页版官方免费漫画入口
OPPO手机参数配置如何开启护眼模式_OPPO手机参数配置护眼模式开启指南
发布小红书怎么屏蔽粉丝?屏蔽粉丝能看到吗?
《全民k歌》音乐怎么下载到本地2025
《理想汽车》权限管理设置方法
Google Cloud Functions 时区处理指南:理解与最佳实践
excel怎么计算平均值 excel平均函数*ERAGE使用教学
Golang如何测试结构体方法_Golang reflect方法测试与调用技巧
鼠标没反应了怎么办 无线/有线鼠标失灵的解决方法【详解】
顺丰快递怎么查物流_顺丰快递物流信息实时查询操作指南
Win10怎么设置快速启动 Win10开启快速启动设置方法
邮政快递寄件查询入口 邮政快递收件查询入口
抖音猜你想搜能说明对方搜过吗
《U校园》学生登录入口2025
在J*a里什么是行为抽象_抽象行为对代码复用的提升作用
SQL聚合查询、联接与筛选:GROUP BY 子句的正确使用与常见陷阱
支付宝网页版在线入口 支付宝官网电脑登录入口
C#解析并修改XML后保存 如何确保格式与编码的正确性
Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略
Final Cut Pro视频加EQ教程
《异星探险家》古怪的物品作用介绍
ao3入口镜像地址 ao3镜像入口可靠跳转
PHP与SQL实践:高效实现数据复制与特定列值修改
mysql镜像配置如何恢复数据_mysql镜像配置数据恢复详细流程
深入理解J*aScript异步操作:setTimeout与调用栈的真相
Excel怎么用XLOOKUP函数实现双向查找_ExcelXLOOKUP替代VLOOKUP+HLOOKUP的高级用法
键盘声音异常怎么回事_键盘异响怎么处理
edge浏览器怎么修改语言为中文_Edge界面语言切换教程
宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?
《友玩*》创建群聊方法
Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】
vivo浏览器怎么离线保存网页 vivo浏览器下载完整页面以便无网络时阅读
汽水音乐网页端访问 汽水音乐官方网页直达
word页码灰色不能用如何解决
5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备
HTML与J*aScript实现下拉菜单驱动的动态表格:构建交互式维修表单
嘀嗒顺风车如何开具电子发票
消除网页顶部意外空白线:CSS布局常见问题与解决方案
百度竞价WAP显示PC链接问题
猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程
在VS Code中进行数据科学和机器学习开发
Animex动漫社正版在线入口 Animex动漫社动漫官方观看网
腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台
Google Drive API服务器端访问指南:服务账户认证详解
济南公交卡手机充值指南
使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel
lol小红书怎么|直播|?lol小红书|直播|是什么意思?
2025-11-27
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。