Pandas:df.index.str.textract()不像re.findall()那样工作



我正在尝试在以下设备上使用df.<column_name or index>.str.extract(r'd+')

28    USD-ABC-S__7y
29    USD-ABC-S__8y
Name: InstrumentIdentifier, dtype: object

不过,这给了我一个ValueError:

ValueError: pattern contains no capture groups

然而,当我尝试时:

import re
re.findall(r'd+', 'USD-ABC-S__8y')

这将返回预期结果:[8]

你知道为什么Pandas版本没有给出与re相同的结果吗?

Thx

您需要将正则表达式封装在捕获组((...)(中:

df.<column_name or index>.str.extract(r'(d+)')

示例:

df['InstrumentIdentifier'].str.extract(r'(d+)', expand=False)

输出:

28    7
29    8
Name: InstrumentIdentifier, dtype: object

最新更新