Подсчитывать с помощью group by с помощью numpy

#numpy #group-by #count

#numpy #группировка по #подсчитывать #группировать по

Вопрос:

У меня есть большой список с формой, превышающей (1000000, 200). Я хотел бы подсчитать вхождения элементов в последнем столбце (:, -1). Я могу сделать это в pandas с меньшим списком;

 distribution = mylist.groupby('var1').count()
  

Однако у меня нет меток ни в одном из моих измерений. Так что не уверен, как на них ссылаться.

Редактировать: печать образцов данных pandas;

             0    1         2   3   4   ...  204 205     206 207    208
0           1    1  Random 1   4  12  ...   8  -14860   0  -5.0000 43.065233
1           1    1  Random 2   3   2  ...   8  -92993  -1  -1.0000 43.057945
2           1    1  Random 3  13   3  ...   8  -62907   1  -2.0000 43.070335
3           1    1  Random 3  13   3  ...   8  -62907  -1  -2.0000 43.070335
4           1    1  Random 4   4   2  ...   8  -38673  -1   0.0000 43.057945
5           1    1    Book 1   3   9  ...   8  -82339  -1   0.0000 43.059402
...       ...  ...       ...  ..  ..  ...  ..     ...  ..      ...       ...
11795132  292    1  Random 5  12   2  ...   8  -69229  -1   0.0000 12.839051
11795133  292    1    Book 2   7  10  ...   8  -60664  -1   0.0000 46.823615
11795134  292    1  Random 2   9   4  ...   8  -78754   1  -2.0000 11.762521
11795135  292    1  Random 2   9   4  ...   8  -78754  -1  -2.0000 11.762521
11795136  292    1  Random 1   7   5  ...   8  -76275  -1   0.0000 41.839286
  

Я хочу несколько разных подсчетов и сводок, поэтому планирую делать по одному с;

 mylist = input_list.values
mylist = mylist[:, -1]
mylist.astype(int)
  

Ожидаемый результат;

 11   2
12   1
41   1
43   6
46   1
  

Комментарии:

1. Добавить минимальный образец данных и ожидаемый результат?

Ответ №1:

iloc позволяет ссылаться на столбец без использования меток

распределение = input_list.groupby(input_list.iloc[:, -1]).count()