我在 Excel 工作表(也以 csv 格式)中获得了姓名列表,并根据姓名的来源进行了分组。
这就是我创建的组的样子。
现在我想添加一个新列,名称后面包含组名称。
这就是我想要获得的。
我如何得到这个?我必须为此使用正则表达式吗?
最佳答案
这里不需要正则表达式。例如,您可以使用python的csv模块。
旧.csv
groups,,,
Dutch,Lore,Kilian,Daan
German,Marte,,
USA,Eva,Judith,
使用导入csv的Python脚本
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 模块,但您必须安装它们,因为它们不是标准的。
关于regex - 使用正则表达式对值进行分组 regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37386007/