我有一个 pd.Series 如下所示
O some texts...final exam marks:50 next level:10 1 some texts....final exam marks he has got:54 next level:15 2 some texts...final marks ...some texts: 45 next best level:20
我想从该系列中提取这些数字 50,54,45。请注意,每行文本中有多个数字。 我尝试过正则表达式,但它不是只给出那些特定的数字,而是拾取每行中的所有数字。本质上我想要单词后面的数字 '分数'。任何帮助将不胜感激。
附:我现在已经更新了问题。我尝试了这里给出的解决方案。事实上我尝试过
pd.Series.str.findall('?<=specific text *(\d{2})')
但是列表为空。这里示例的表示与实际问题非常相似,因此我编辑了这篇文章。
提前非常感谢。
最佳答案
尝试
s.str.extract('.*marks:\s?(\d+)', expand = False)
0 50
1 54
2 45
更新后:
s.str.extract('.*marks.*?(\d+)', expand = False)
此正则表达式考虑以下事实:标记后可能有也可能没有字符
你得到了
0 50
1 54
2 45
关于python - 如何提取包含文本的 pandas 系列的每一行中的特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44252250/