Есть ли в Pandas более эффективный в вычислительном отношении способ добраться до конечного результата ниже? Я хочу только первое вхождение, и с вычислительной точки зрения неэффективно найти все, а затем получить 0-й элемент списка, как показано ниже:
Input:
s= pd.Series(["David Matt Juan Peter David James",
"Scott David Peter Sam David Ron",
"Dan Phil David Sam Pedro David Mani"])
s_find= s.str.findall(r'David [A-za-z]*')
print(s_find)
Output:
0 [David Matt, David James]
1 [David Peter, David Ron]
2 [David Sam, David Mani]
Input:
s_find= s_find.str[0]
print(s_find)
Output:
0 David Matt
1 David Peter
2 David Sam