熊猫之间的区别.Series.str.match和熊猫.Series.str.contains.



pandas.Series.str.containspandas.Series.str.match有什么区别?为什么会出现以下情况?

s1 = pd.Series(['house and parrot'])
s1.str.contains(r"bparrotb", case=False)

我得到了True,但是当我这样做时

s1.str.match(r"bparrotb", case=False)

我得到了False.为什么会这样呢?

str.contains()的文档指出:

测试模式或正则表达式是否包含在系列或 指数。

str.match()的文档指出:

确定每个字符串是否与正则表达式匹配。

这两种方法的区别在于str.contains()使用:re.search,而str.match()使用re.match

根据re.match()的文件

如果字符串开头的零个或多个字符与 正则表达式模式,返回相应的 match 对象。 如果字符串与模式不匹配,则返回 None;请注意,这 与零长度匹配不同。

因此parrot与字符串的第一个字符不匹配,因此表达式返回 False。House确实匹配第一个字符,因此它会找到house并返回 true。

相关内容

最新更新