如何从Python中的字符串中提取信息?

时间:2017-04-05 01:24:31

标签: python pandas data-cleaning

我有一个包含奖项列的csv文件,其中包含各种不同的提名和奖项。我想从此dataset中的奖项列中提取数据,并将其拆分为多个列。该奖项包括获奖,一般提名以及某些类别的获奖和提名的详细信息(例如,奥斯卡,BAFTA等)。奖项列的示例输入如下所示。

Click here for Input image

我想将这些数据分成几列分析数据。我们可以用python实现这个吗?我正在使用pandas访问dataframe。预期输出样本如下所示。

Click here for Output image

1 个答案:

答案 0 :(得分:1)

您的数据似乎没有特别好的结构。如果格式保证采用以下形式:

  

x 获胜& y 提名。

然后是以下代码:

testStrings = ['1 win & 1 nomination.','2 wins.','5 nominations.', '3 wins & 8 nominations.', '2 wins.','9 wins.']

text = [i.split('&') for i in testStrings]

data=[]
for row in text:
    for t in row:
        winIndex = t.find('win')
        nomIndex = t.find('nom')
        if winIndex>0:
            w=int(t[:winIndex-1] )
        else:
            w=0
        if nomIndex>0:
            n=int(t[:nomIndex-1] )
        else:
            n=0
    data.append([w,n])

将为您提供数据列表,其中每行的每个元素都是 [numWins,numNoms]

您可以通过搜索这些关键字(例如代码查找子字符串"赢得"以及" NOM&#34)。希望这能提供一些帮助。