使用pandas在关键短语后提取字符串的某个部分?

时间:2014-02-21 23:49:03

标签: python string pandas extract

我有一个NFL数据集,其中包含“说明”列,其中包含有关该剧的详细信息。每个成功的传球和跑步游戏都有一个结构如下的字符串:

“(12:25)(No Huddle Shotgun)P.Manning左路传球给W.Welker,在DEN 34推进了10码(C.Graham)。”

如何在字符串中的“for”之后找到/提取数字,并将其放在新列中?

2 个答案:

答案 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]