【发布时间】:2016-05-23 08:20:55
【问题描述】:
我在 Excel 工作表(也在 csv 中)中有一个名称列表,并且我根据名称的来源进行了分组。
这就是我创建的组的样子。
现在我想添加一个新列,名称后面是组名。
这是我想要得到的。
我如何得到这个?我必须为此使用正则表达式吗?
【问题讨论】:
-
您放置了一个 python 标签,但它已在编辑期间被删除。如果您想在python中获得更多答案,我建议您在问题中指定它。
我在 Excel 工作表(也在 csv 中)中有一个名称列表,并且我根据名称的来源进行了分组。
这就是我创建的组的样子。
现在我想添加一个新列,名称后面是组名。
这是我想要得到的。
我如何得到这个?我必须为此使用正则表达式吗?
【问题讨论】:
这里不需要正则表达式。比如你可以使用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 模块,但您必须安装它们,因为它们不是标准的。
【讨论】: