当前位置: 首页 > 面试题库 >

熊猫在正则表达式上分裂

陶寒
2023-03-14
问题内容

我的pandas df包含一个包含逗号分隔特征的列,如下所示:

Shot - Wounded/Injured, Shot - Dead (murder, accidental, suicide), Suicide - Attempt, Murder/Suicide, Attempted Murder/Suicide (one variable unsuccessful), Institution/Group/Business, Mass Murder (4+ deceased victims excluding the subject/suspect/perpetrator , one location), Mass Shooting (4+ victims injured or killed excluding the subject/suspect

我想将此列拆分为多个虚拟变量列,但无法弄清楚如何启动此过程。我正在尝试像这样拆分列:

df['incident_characteristics'].str.split(',', expand=True)

但是,这不起作用,因为描述中间有逗号。取而代之的是,我需要根据逗号的正则表达式匹配,后跟一个空格和一个大写字母进行拆分。str.split可以使用正则表达式吗?如果是这样,这是怎么做的?

我认为正则表达式可以满足我的需求:

,\s[A-Z]

问题答案:

是的,split支持正则表达式。根据您的要求,

根据逗号的正则表达式匹配后跟一个空格和一个大写字母进行拆分

您可以使用

df['incident_characteristics'].str.split(r'\s*,\s*(?=[A-Z])', expand=True)

请参阅regex演示。

细节

  • \s*,\s* -包含0+空格的逗号
  • (?=[A-Z]) -仅在后跟大写ASCII字母时

然而,似乎还不想匹配括号内的逗号,加上(?![^()]*\))先行如果失败了比赛,马上到当前位置的右边,还有比其他0+字符())

r'\s*,\s*(?=[A-Z])(?![^()]*\))'

并且可以防止在括号内(括号内没有括号)中的大写单词之前匹配逗号。

参见另一个正则表达式演示。



 类似资料:
  • 我正在使用熊猫进行一些数据清理,我有一个很长的正则表达式,我想将其分成多行。下面的作品在熊猫很好,因为它是所有在一行: 然而,这是很难管理的。我尝试了以下在常规Python中工作的详细方法: 不过,这在熊猫身上不起作用。知道我错过了什么吗? 以下是一些用于测试的示例文本: GR, MDT, CMR, HLDS, NEXT, NGI@25273, COMPTG 在9-7/8 LNR、LWD[GR、R

  • 问题内容: 我想解决这个问题。 逗号:分割条款 双引号:字符串值(忽略特殊字符) 数组 例如: 输入: 预期输出: 但是我无法获得超越结果。 我写了下面的代码: 我的输出是: 我需要更改以获得预期的输出?我应该坚持使用正则表达式还是其他解决方案更灵活,更易于维护? 问题答案: 这个正则表达式可以达到目的: 它的工作原理是在逗号后添加一个用于匹配成对的方括号的预读-如果您 位于 方括号内,那么您当然

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 ngx.re.* 的规范,即使您对 Lua 语言中的规范非常熟悉,我们仍不建议使用 Lua 中的正则表达式。一是因为 Lua 中正则表达式的性能并不如 ngx.re.* 中的正则表达式优秀;二是 Lua 中的正则表达式并不符合 POSIX 规范,而 ngx.re.* 中实现的是标准的 POSIX 规范,后者明显更具备通用

  • 一、概述 二、匹配单个字符 三、匹配一组字符 四、使用元字符 五、重复匹配 六、位置匹配 七、使用子表达式 八、回溯引用 九、前后查找 十、嵌入条件 参考资料 一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。 正则表达式在线工具 二、匹配单个字符 . 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符; . 是元字

  • 这部分内容可以说是学习shell脚本之前必学的内容。如果你这部分内容学的越好,那么你的shell脚本编写能力就会越强。所以不要嫌这部分内容啰嗦,也不要怕麻烦,要用心学习。一定要多加练习,练习多了就能熟练掌握了。 在计算机科学中,正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模