2017-04-05 43 views
-1

我有一個csv文件,其中包含各種不同提名和獲獎的獎項專欄。我想從此數據集中的獎勵列中提取數據,並將其分成幾列。這些獎項包括獲獎細節,一般提名,以及某些類別的獲獎和提名(如奧斯卡,BAFTA等)。獎項欄的示例輸入如下所示。如何從Python中的字符串中提取信息?

Click here for Input image

而且我想這個數據拆分成若干列分析數據。我們可以用python來實現嗎?我使用熊貓來訪問數據框。預期的輸出樣本如下所示。

Click here for Output image

+0

你到目前爲止嘗試過什麼?請發佈您的代碼。另外,請發佈您的數據,而不是數據的圖像。 – James

+0

我是一個Python新手,我從頭開始,所以基本上不知道。 – swarupmishal

+0

不知道最好的方法,但可以通過製作不同模式的案例來完成。 – Rohanil

回答

0

看來你的數據不是特別良好的結構。如果格式是保證在以下形式:

X勝& ý提名。

然後將以下代碼:

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]每一行。

通過搜索這些關鍵字(例如代碼查找子字符串「won」和「nom」),您可能可以擴展它以適應不同的格式(例如「Won 1 Primetime Emmy」)。希望這可以提供一些幫助。

+0

這就是問題數據是非結構化格式。有什麼辦法可以讓它結構化嗎? – swarupmishal

+0

你的意思是你的輸入數據是非結構化的?還是輸出? – Robbie

+0

輸入是非結構化的。方式列顯示在圖像中。 – swarupmishal

相關問題