我有一个NFL数据集,其中包含“说明”列,其中包含有关该剧的详细信息。每个成功的传球和跑步游戏都有一个结构如下的字符串:
“(12:25)(No Huddle Shotgun)P.Manning左路传球给W.Welker,在DEN 34推进了10码(C.Graham)。”
如何在字符串中的“for”之后找到/提取数字,并将其放在新列中?
答案 0 :(得分:10)
您可以使用系列str.extract字符串方法:
In [11]: df = pd.DataFrame([["(12:25) (No Huddle Shotgun) P.Manning pass short left to W.Welker pushed ob at DEN 34 for 10 yards (C.Graham)."]])
In [12]: df
Out[12]:
0
0 (12:25) (No Huddle Shotgun) P.Manning pass sho...
这将"提取"它是什么组(在括号内):
In [13]: df[0].str.extract("for (\d+)")
Out[13]:
0 10
Name: 0, dtype: object
In [14]: df[0].str.extract("for (\d+) yards")
Out[14]:
0 10
Name: 0, dtype: object
您需要转换为int,例如使用astype(int)
。
答案 1 :(得分:-1)
这将获取数字10并将其放入一个名为yards的变量中。
x =“(12:25)(没有蜷缩霰弹枪)P.Manning左路传球给W.Welker在DEN 34推进ob 10码(C.Graham)。”
码=(x.split(“for”)[ - 1])。split(“码”)[0]