gpt4 book ai didi

python - 提取最长匹配

转载 作者:行者123 更新时间:2023-11-28 22:11:38 25 4
gpt4 key购买 nike

考虑这个简单的设置

import pandas as pd

df = pd.DataFrame({'id' : [1,2,3],
'text' : ['stack-overflow',
'slack-overflow',
'smack-over']})
df
Out[9]:
id text
0 1 stack-overflow
1 2 slack-overflow
2 3 smack-over

我有一个给定的正则表达式,我想提取最长匹配项。我知道我可以使用 str.extractall 来获取所有匹配项,但是我怎样才能有效地获取最长的匹配项(作为数据框中的列 df['mylongest'] )?

当然,在这个例子中,最长的匹配是 overflow、overflow 和 smack。

df.text.str.findall(r'(\w+)')
Out[10]:
0 [stack, overflow]
1 [slack, overflow]
2 [smack, over]
Name: text, dtype: object

最佳答案

让我们将 max 映射到 str.findall 的结果。我使用 functools.partial 来避免 lambda。

from functools import partial

f = partial(max, key=len)
df['text'].str.findall(r'(\w+)').map(f)

0 overflow
1 overflow
2 smack
Name: text, dtype: object

关于python - 提取最长匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564428/

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