2016-09-24 9 views
0

エキス、様々な情報

は別のcsvファイル

条件に書き込む前に2列のcsvファイルから名前、日付や住所などの様々な情報を抽出したいの概要

  1. を最初の行で抽出すると、常に最初の行が 行になります。
  2. 正規表現によって抽出を一定のキーワード '道' で(pythonでありregexである?)##/##/#### 形式
  3. エキス住所

EXCEL


から見

例CSVダミーソースデータ参照ファイル・フォーマット

 ID,DATA 88888,DADDY 88888,2/06/2016 88888,new issac road 99999,MUMMY 99999,samsung road 99999,12/02/2016 

理想のCSV成果

ID,Name,Address,DATE 
8888,DADDY,new issac road,2/06/2016 
9999,MUMMY,samsung road,12/02/2016 

何私がこれまで持っている:

import csv 
from collections import defaultdict 

columns = defaultdict(list) # each value in each column is appended to a list 

with open('dummy_data.csv') as f: 
    reader = csv.DictReader(f) # read rows into a dictionary format 
    for row in reader: # read a row as {column1: value1, column2: value2,...} 
     for (k,v) in row.items(): # go over each column name and value 
      columns[k].append(v) # append the value into the appropriate list 
           # based on column name k 
uniqueidstatement = columns['receipt_id'] 

print uniqueidstatement 

resultFile = open("wtf.csv",'wb') 
wr = csv.writer(resultFile, dialect='excel') 
wr.writerow(uniqueidstatement) 
+0

実際の問題は何ですか? –

+0

whileループはアイデアの権利でしょうか? – Perlinn

+0

私は – Perlinn

答えて

0

グループ化できますIDによると、あなたが日付であるかを決定することができ、各グループからのセクションいくつかの単純なロジックを持つアドレスです。

import csv 
from itertools import groupby 
from operator import itemgetter 

with open("test.csv") as f, open("out.csv", "w") as out: 
    reader = csv.reader(f) 
    next(reader) 
    writer = csv.writer(out) 
    writer.writerow(["ID","NAME","ADDRESS", "DATE"]) 
    groups = groupby(csv.reader(f), key=itemgetter(0)) 
    for k, v in groups: 
     id_, name = next(v) 
     add_date_1, add_date_2 = next(v)[1], next(v)[1] 
     date, add = (add_date_1, add_date_2) if "road" in add_date_2 else (add_date_2, add_date_1) 
     writer.writerow([id_, name, add, date]) 
+0

ID、NAME、ADDRESS、DATE、空白行、88888 DADDY新しいissac road 2/06/2016(カンマはいいです)thats all。私はちょっと失われました – Perlinn

+0

'id_、name、_ = next(v)' >>>>>>ソースcsvファイル名の列を参照している間に、ソースcsvファイル列のREFERを参照していますか?私は、_ – Perlinn

+0

を削除しましたあなたのデータは空白行と区切り記号で区切られていますか?それらのコメントは実際にそこにあるかどうか? –