我有如下数据:
Format,Message,time
A,gn@2 ab@1 yl@5 rd@20 pp@40,3
B,w:w23w4w5w6w7gn@3 gn@7 yl@20 ss@25 rd@50,21
C,cc@1 fgn@4 yl@9 rd@20,22
D,rg@1 fedsf@5 rww@10 yl@20 rd@26,30
我的预期结果是提取gn、yl和rd之后的数字
Format,Message,time,gn,yl,rd
A,gn@2 ab@1 yl@5 rd@20 pp@40,3,2,5,20
B,w:w23w4w5w6w7gn@3 an@7 yl@20 ss@25 rd@50,21,3,20,50
C,cc@1 fgn@4 yl@9 rd@20,22,4,9,20
D,rg@1 fedsf@5 rww@10 yl@20 rd@26,30,0,20,26
到目前为止,我可以得到yl和rd,但我无法提取数字后面的gn。请注意,gn元素可能在gn之前包含一些其他字符,并且在gn@
def f(mess):
p1 = mess.find('yl')
p2 = mess.find('rd')
b = mess[p1+3:].split(' ')[0]
c = mess[p2+3:].split(' ')[0]
return int(b),int(c)
id['vals'] = id['Message'].apply(f) #with this im able to get the numbers from yl and rd
使用正则表达式。你知道吗
演示:
输出:
尝试使用以下表达式:
让我们分步来解决这个问题。你知道吗
假设输入存储在变量
data
中,输出存储在名为final
的元组列表中。下面是我将如何解决这个问题。你知道吗注:上述解决方案是在假设任何给定行中没有任何值多次出现的情况下得出的。你知道吗
如果您有任何疑问,请告诉我。你知道吗
相关问题 更多 >
编程相关推荐