gpt4 book ai didi

python - 使用 pandas/regex 提取子字符串

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:19 25 4
gpt4 key购买 nike

我正在尝试使用内置的 pandas 方法 .str.extract 从我导入的数据帧的列中提取子字符串。该列中的条目均遵循以下结构:

x.xx% Test1 Test2 Test3 XYZ|ZYX Oct 2018

所以本质上它总是一个浮点%,后面跟着一个字符串(它并不总是具有相同的单词长度),后面跟着一个三字母代码,即XYZ或ZYX,后面是一个日期。

我试图从上面的示例中提取 Test1、Test2 和 Test3,这意味着我想去掉开头的百分比,而 XYZ|ZYX 出现的地方我想要消失后的所有内容(包括三字母代码) .

我整个早上都在阅读正则表达式,但我正在努力使用 pandas extract 构建一些代码,这些代码可以准确地提取出我想要的内容。有什么建议么?我得到的最远的是下面的内容,它只显示了开始时的百分比(试图将其分为三类):

.str.extract('(\d\.\d+%.)') 

最佳答案

您可以使用具有前瞻功能的模式来确定何时停止匹配。

([\w\s]+?)(?=\w{3}\|)'

详细信息

(               # first capture group
[\w\s]+? # match letters or whitespaces
)
(?= # lookahead
\w{3} # fixed length 3 chars
\| # literal `|`
)
<小时/>
s = pd.Series(['x.xx% Test1 Test2 Test3 XYZ|ZYX Oct 2018'])
s.str.extract(r'([\w\s]+?)(?=\w{3}\|)', expand=False)

0 Test1 Test2 Test3
dtype: object

关于python - 使用 pandas/regex 提取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49364531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com