Количество уникальных элементов python в столбце csv

Я пытаюсь получить количество уникальных элементов в столбце csv, используя Python.

Пример файла CSV (нет заголовка):

AB,asd AB,poi AB,asd BG,put BG,asd 

Я пробовал это до сих пор.

 import csv from collections import defaultdict, Counter input_file = open('Results/1_sample.csv') csv_reader = csv.reader(input_file, delimiter=',') data = defaultdict(list) for row in csv_reader: data[row[0]].append(row[1]) for k, v in data.items(): print k print Counter(v) 

Это дает результат в этом формате:

 AB Counter({'asd': 2, 'poi': 1}) BG Counter({'asd': 1, 'put': 1}) 

Но я хочу, чтобы мой результат был следующим:

 AB:2 BG:2 total_unique_count:3 #unique count of column[1], irrespective of the data in column[0] 

Вы ищете метод nunique :

 In [11]: df Out[11]: 0 1 0 AB asd 1 AB poi 2 AB asd 3 BG put 4 BG asd In [12]: g = df.groupby(0) In [13]: g[1].nunique() Out[13]: 0 AB 2 BG 2 Name: 1, dtype: int64 

Использовать sets :

 data = (('AB', 'asd'), ('AB', 'poi'), ('AB', 'asd'), ('BG', 'put'), ('BG', 'asd')) unique_items = set(data) keys = [[entry[0] for entry in unique_items]] for key in set(keys): print("Key '{}' appears {} unique times".format(key, keys.count(key))) 

Ключ «BG» появляется 2 уникальных раза
Ключ «AB» появляется 2 уникальных раза