了解熊猫系列提取函数中的正则表达式
Posted
技术标签:
【中文标题】了解熊猫系列提取函数中的正则表达式【英文标题】:Understanding a regular expression in a series extract function in pandas 【发布时间】:2019-08-14 09:06:05 【问题描述】:我有以下代码:
import pandas as pd
s = pd.Series(['toy story (1995)', 'the pirates (2014)'])
print(s.str.extract('.*\((.*)\).*',expand = True))
有输出:
0
0 1995
1 2014
我了解 extract 函数正在为两个系列对象提取括号之间的值。但是我不明白怎么做。 '.*\((.*)\).*'
到底是什么意思?我认为星号代表通配符,但除此之外,我对这个表达式的实际情况感到非常困惑。
【问题讨论】:
【参考方案1】:.*\(
匹配直到第一个 (
之前的所有内容
\).*
匹配从 )
到结尾的所有内容
(.*)
返回前两个匹配项之间的所有内容
【讨论】:
【参考方案2】:.* Match any number of characters
\( Match one opening parenthesis
(.*) Match any number of characters into the first capturing group
\) Match a closing parenthesis
.* Match any number of characters
这种表示法称为正则表达式,我猜 Pandas 在extract
函数中使用了正则表达式,因此您可以获得更精确的数据。捕获组内的东西将被返回。
您可以在Wikipedia page 了解更多关于正则表达式的信息。
这是a test example 使用您的正则表达式。
【讨论】:
以上是关于了解熊猫系列提取函数中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章