2016-05-23 2 views
2

Excelシート内の名前のリスト(csvでも)があり、名前の由来を持つグループを作成しました。正規表現で値をグループ化するregex

これは私が作ったグループのようなものです。

This is what the groups I made look like

今、私は名前の後ろにグループ名で新しい列を追加したいです。

これは私が入手したいものです。

This is what the groups I made look like

私はこれをどのように入手できますか?これには正規表現を使用する必要がありますか?

+0

あなたはpythonタグを置いていますが、エディション中に削除されています。あなたがPythonでより多くの回答を得たいなら、私はあなたの質問にそれを指定することをお勧めします。 – cromod

答えて

2

ここでは正規表現は必要ありません。たとえば、Pythonのcsvモジュールを使用することができます。 old.csv

groups,,, 
Dutch,Lore,Kilian,Daan 
German,Marte,, 
USA,Eva,Judith, 

使用Pythonスクリプトimport csv

import csv 

rows = [] 

with open('old.csv','r') as old_csv: 
    old = csv.reader(old_csv, delimiter=',') 
    old.next() 
    for row in old: 
    for name in row[1:]: 
     if name: 
     rows.append({'name':name,'group':row[0]}) 

with open('new.csv','w') as new_cvs: 
    fieldnames = ['name', 'group'] 
    new = csv.DictWriter(new_cvs, fieldnames=fieldnames) 
    new.writer.writerow(new.fieldnames) 
    new.writerows(rows) 

new.csv

name,group 
Lore,Dutch 
Kilian,Dutch 
Daan,Dutch 
Marte,German 
Eva,USA 
Judith,USA 

xlrdおよびxlwtモジュールを使用することもできますが、標準ではないため、モジュールをインストールする必要があります。

+0

この作品は、ありがとうございます! :) – Papie

関連する問題