У меня есть текстовый файл с двумя именами столбцов | фамилия, в которой имя может иметь различное семейство, поэтому у нас есть несколько строк с тем же именем и разными именами. Файл составляет около 50 ГБ. То, что я хочу, это количество фамилий на имя.Самый быстрый способ подсчета количества уникальных значений на ключ?
В настоящее время я создал словарь с именами в качестве ключей и фамилии в качестве значений, и я распечатываю каждый ключ и длину значения (как набор фамилий). Но это не очень эффективно и быстро
d = defaultdict(set)
f = open(file, 'r')
for n, line in enumerate(f):
name,family= line.split('|')
d[name].add(family)
for name, family in d.iteritems():
print("%s|%s" % (name, len(family)), file = w)
ли любое тело любое предложение для более быстрого способа получения такого же результата?
50gb текста? Сколько строк у этого файла? Просто любопытно. –
@Apero Я не знаю – UserYmY
В вашей оболочке: wc -l –