【问题标题】:Grouping values with regular expressions regex使用正则表达式 regex 对值进行分组
【发布时间】:2016-05-23 08:20:55
【问题描述】:

我在 Excel 工作表(也在 csv 中)中有一个名称列表,并且我根据名称的来源进行了分组。

这就是我创建的组的样子。

现在我想添加一个新列,名称后面是组名。

这是我想要得到的。

我如何得到这个?我必须为此使用正则表达式吗?

【问题讨论】:

  • 您放置了一个 python 标签,但它已在编辑期间被删除。如果您想在python中获得更多答案,我建议您在问题中指定它。

标签: regex excel csv


【解决方案1】:

这里不需要正则表达式。比如你可以使用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 模块,但您必须安装它们,因为它们不是标准的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多