Python 3.x 如何在Python中使用pandas从数据框中的列中查找特定值
我想从数据框架中名为“链接项目”的列中提取需求编号的值。“链接项目”列包含以下格式的字符串:Python 3.x 如何在Python中使用pandas从数据框中的列中查找特定值,python-3.x,pandas,Python 3.x,Pandas,我想从数据框架中名为“链接项目”的列中提取需求编号的值。“链接项目”列包含以下格式的字符串: Linked Issues Requirement-12345, NewPr-8795, OldPr-78941 MSR-85749, Requirement-74852, NewPr-95418 Requirement-894895 OldPr-85974, NewPr-968572, Requirement-985785 预期结果: 我想要的是将需求编号存储在一个新列中,如下所
Linked Issues
Requirement-12345, NewPr-8795, OldPr-78941
MSR-85749, Requirement-74852, NewPr-95418
Requirement-894895
OldPr-85974, NewPr-968572, Requirement-985785
预期结果:我想要的是将需求编号存储在一个新列中,如下所示:
Requirement Number
Requirement-12345
Requirement-74852
Requirement-894895
Requirement-985785
用于使用regex
-r'(要求-\d+)
字符串获取值,每行获取第一个匹配值的整数:
df['new'] = df['Linked Issues'].str.extract(r'(Requirement-\d+)')
print (df)
Linked Issues new
0 Requirement-12345, NewPr-8795, OldPr-78941 Requirement-12345
1 MSR-85749, Requirement-74852, NewPr-95418 Requirement-74852
2 Requirement-894895 Requirement-894895
3 OldPr-85974, NewPr-968572, Requirement-985785 Requirement-985785
如果可能,每行使用多个值,请使用:
如果在所有列中正确编写了需求,您可以使用regex,并使用
df.apply()
从每一行中提取。感谢上述解决方案,您是一个很大的帮助。它工作得非常好。我查看了一些文档,需要确认这里我们在r'(Requirement-\d+)中使用了r,以便让python知道我们正在处理正则表达式。
df['new'] = df['Linked Issues'].str.findall(r'(Requirement-\d+)').str.join(', ')