Я пытаюсь составить список количества элементов в каждой группе в серии панд.В моем dataframe у меня есть столбец с именем ID, и все значения встречаются несколько раз.Я хочу сделать список, содержащий частоту каждого элемента в порядке, в котором они встречаются.
Таким образом, пример идентификатора столбца: [1,2,3,3,3,2,1,5,2,3,1,2,4,3]
, это должно привести к [3,4,5,1,1]
, так какидентификатор группы 1 встречается 3 раза, идентификатор группы 2 встречается 4 раза и т. д. Я создал код, который отлично справляется с этой задачей:
group_list = df.ID.unique().tolist()
group_size = []
for i in group_list:
group_size.append(df.ID.value_counts()[i])
Проблема заключается в том, что для завершения требуется длинный путь.У меня 5 миллионов строк, и я позволил ему работать в течение 50 минут, а он все еще не закончился!Я попытался запустить его для первых 30-50 строк, и он работает как задумано.
Для меня было бы логично просто использовать value_counts(sort=False)
, но это не дает мне частоты идентификатора группы в порядкеони встречаются в моей серии.Я также пытался реализовать расширение, потому что я читал, что это должно быть быстрее, но я получаю "numpy.int64 object is not iterable"
.