2017-04-05 53 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勝& 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]行ごとあるデータのリストを与えます。

これらのキーワードを検索することで、さまざまなフォーマット(たとえば「Won 1 Primetime Emmy」)に対応することができます(コードでは「won」と「nom」の部分文字列を検索します)。これはいくつかの助けを提供したいと思います。

+0

それは、データが非構造化形式であるという問題です。私はそれを構造化できる方法はありますか? – swarupmishal

+0

入力データが構造化されていないことを意味しますか?または出力? – Robbie

+0

入力が構造化されていません。方法の列は画像に示されています。 – swarupmishal

関連する問題