Как посчитать количество уникальных значений в списке в заданном столбце
Имеется большой список значений, в первом столбце которого количество элементов относительно невелико:
big_data_list = [
['google', 'cpc', 925],
['yandex', 'organic', 790],
['market', 'cpc', 465],
['google', 'organic', 413],
['google', 'cpc', 398],
['direct', 'none', 115],
['yandex', 'cpc', 43]
]
Необходимо посчитать количество уникальных значений канала в листе big_data_list (второй столбец)
Мой вариант решения:
stats = {}
for line in big_data_list:
stats.setdefault(line[1], 0)
stats[line[1]] += 1
stats
Все работает, но хочется узнать более оптимальный вариант кода.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Можно через Counter:
from collections import Counter
Counter(map(lambda x: x[1], big_data_list))
Результат:
Counter({'cpc': 4, 'none': 1, 'organic': 2})