@kicherov_maxim

Как подсчитать статистику по данным из базы Django?

Добрый день. У меня есть база с ip адресами и "отпечатками" для каждого ip. Мне необходимо посчитать статистику, сколько раз для разных ip адресов был получен одинаковый отпечаток. Строки с одинаковыми ip надо отбросить, и оставшуюся выборку разбить на группы 100, 200, 300 и т.д. элементов.

Проблема в том, что если мой код запустить несколько раз он выдает разные значения.
def collisions(items):
    return len(items) - len(set([x['tlsh'] for x in items])) # Кол-во повторяющихся

all = FingerPrint.objects.all().values('ip', 'tlsh')
print("Всего:", len(all))

unique_ip = list(set([x['ip'] for x in list(all)]))
print("Уникальных:", len(unique_ip))

unique_items = []
for ip in unique_ip:
    unique_items.append(all.filter(ip=ip)[0]) 

# Для графика
x = [100, 200, 300, 400, 500, 600, 700, 738]
y = [collisions(unique_items[:100]),
     collisions(unique_items[:200]),
     collisions(unique_items[:300]),
     collisions(unique_items[:400]),
     collisions(unique_items[:500]),
     collisions(unique_items[:600]),
     collisions(unique_items[:700]),
     collisions(unique_items[:738]),]
print(y)


Вывод:
5ea3d6e49af53672627340.png
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы