Python 数据帧中的模式提取

Python 数据帧中的模式提取,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我正在从dataframe的列中提取一个模式。有些有“奥斯卡”这个词,有些有“奥斯卡”这个词。如何在熊猫数据框中提取。下面是提取行代码。这就产生了错误 df['Oscar_Awards_Won'] = df['Awards'].str.extract('Won (\d+) (Oscar[s]?)', expand=True).fillna(0) 很抱歉,我没有发布示例数据。示例数据包含列奖励。我正试图找出赢得奥斯卡奖的人数 Awards Won 3 Oscars. Another 234

我正在从dataframe的列中提取一个模式。有些有“奥斯卡”这个词,有些有“奥斯卡”这个词。如何在熊猫数据框中提取。下面是提取行代码。这就产生了错误

 df['Oscar_Awards_Won']  = df['Awards'].str.extract('Won  (\d+) (Oscar[s]?)', expand=True).fillna(0)
很抱歉,我没有发布示例数据。示例数据包含列奖励。我正试图找出赢得奥斯卡奖的人数

Awards
Won 3 Oscars. Another 234 wins & 312 nominations.
Won 7 Oscars. Another 215 wins & 169 nominations.
Won 11 Oscars. Another 174 wins & 113 nominations.
Won 4 Oscars. Another 122 wins & 213 nominations.
Won 3 Oscars. Another 92 wins & 150 nominations.
Won 1 Oscar. Another 91 wins & 95 nominations.

这就是我们需要的吗

import pandas as pd
df = pd.DataFrame({'a': [1,2,3,4], 'b': ['is Oscar','asd','Oscars','not an Oscars q']})

df['c'] = ['Won 3 Oscars. Another 234 wins & 312 nominations.',
'Won 7 Oscars. Another 215 wins & 169 nominations.',
'Won 11 Oscar. Another 174 wins & 113 nominations.',
'Won 4 Oscars. Another 122 wins & 213 nominations.']
这一行:

df['c'].str.extract('Won (\d+) Oscar[s]?', expand=True).fillna(0)
给出:

    0
0   3
1   7
2  11
3   4

这也会起作用,因为你不需要担心字母s

df['Oscar_Awards_Won']=df['Awards'].str.extract('Won (\d+) Oscar', expand=True).fillna(0)

我需要示例数据和预期输出。阅读后,您很幸运您的问题没有因为没有提供样本数据而被否决。它对我的样本数据不起作用。我已经发布了上面的样本数据,我只需要获得奥斯卡或奥斯卡之前的数字。它只为奥斯卡而来。奥斯卡颁奖典礼前的人数不多啊,我明白了。首先被误解了。请检查更正的代码。