如何在python中使用正则表达式在字符串之间选择值并放置在数据框的列中

Posted

技术标签:

【中文标题】如何在python中使用正则表达式在字符串之间选择值并放置在数据框的列中【英文标题】:How to select values in between strings and place in column of dataframe using regex in python 【发布时间】:2016-11-08 18:00:39 【问题描述】:

我有一个大型数据框,其中包含一个标题为“评论”的列

在评论部分,我需要提取 3 个值并放入单独的列中,即(占空比、气体和压力)

“工作周期的数据收集开始:0,气体:真空压力:0.000028托”

目前我正在使用 .split 和 .tolist 来解析字符串 ->

#split string and sort into columns 
df1 = pd.DataFrame(eventsDf.comment.str.split().tolist(),columns="0 0 0 0 0 0 dutyCycle 0 Gas 0 Pressure 0 ".split())

#join dataFrames
eventsDf = pd.concat([eventsDf, df1], axis=1)

#drop columns not needed
eventsDf.drop(['comment','0',],axis=1,inplace=True)

我发现这种方法相当“hacky”,因为如果评论部分的结构发生更改,我的代码将毫无用处......谁能告诉我一个更有效/更强大的方法来做到这一点?非常感谢!

【问题讨论】:

【参考方案1】:

str.extract 与正则表达式一起使用。

regex = r'Duty Cycle: (?P<Duty_Cycle>\d+), Gas: (?P<Gas>\w+) Pressure: (?P<Pressure>\S+) Torr'
df1 = eventsDf.comment.str.extract(regex, expand=True)
df1

【讨论】:

以上是关于如何在python中使用正则表达式在字符串之间选择值并放置在数据框的列中的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式在 Python 中查找两个字符串之间的字符串

不止一次用正则表达式替换两个字符串之间的字符串,python

通过Python中的正则表达式优化在两个列表之间查找匹配子字符串

Python正则表达式获取引号之间的字符串

如何避免使用 Python re 库删除文本文件中正则表达式标志之间的文本块?

python中的正则表达式:如何在模式中使用变量字符串? [复制]