不确定我是否应该修复我的正则表达式模式,或者用熊猫处理更多。
这是一个模拟设置:
import re
import pandas as pd
regex = r"(?P<adv>This)|(?P<noun>test)"
texts = ["This is a test", "Random stuff with no match"]
series = pd.Series(texts)
我想找到组的所有匹配项(<adv>
,<noun>
- 通常有两个以上(。这些组被设计为独占的,因此我只想使用捕获的字符串/NaN获得一行结果。
当前输出:多索引行,仅适用于具有匹配项的文本
>>> print(series.str.extractall(regex))
adv noun
match
0 0 This NaN
1 NaN test
预期输出:每个输入文本一行,每组聚合匹配项
adv noun
0 This test
1 NaN NaN
有机会帮忙吗?要么修复正则表达式,要么使用熊猫进行后期处理。 谢谢!
你可以试试;
series.str.extractall(regex).groupby(level=0).first()
adv noun
0 This test