考虑这个简单的设置
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']
)?
当然,在此示例中,最长的匹配项是溢出,溢出和斑点。
df.text.str.findall(r'(\w+)')
Out[10]:
0 [stack, overflow]
1 [slack, overflow]
2 [smack, over]
Name: text, dtype: object
答案 0 :(得分:2)
让我们将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
答案 1 :(得分:2)
如果您想尝试使用 if let VC = segue.destination as? p2SheetViewController {
VC.2BottomSheetDelegate = self
VC.parentView = p2Container
p2VC = VC
} else if let vc = segue.destination as? BottomP1SheetViewController {
vc.bottomSheetDelegate = self
vc.parentView = p1Container
vc.homePgButton = homePgButton
vc.2BottomSheet = p2VC
}
pandas