Как сформировать матрицу отсчетов от появления комбинации, используя Python? - PullRequest
1 голос
/ 09 апреля 2020

Я столкнулся с такой проблемой кодирования.

С учетом фрейма данных с именем столбца ('col1', 'col2'), как показано на рисунке ниже

Кадр данных:

enter image description here

Здесь переменные столбца 'col1' и 'col2' являются категориальными данными. Я хочу сформировать матрицу, в которой каждая запись будет подсчитывать количество строк для определенного c выбора col1 и col2. Например, количество строк такое, что Column 'col1' равен '1', а Column 'col2' равен '1'. (Строка 316 на рисунке показана)

Я получил очень большой набор данных. и col1, и col2 имеют 1000 разных значений. Если бы я использовал double для l oop, это было бы очень медленно. Есть ли более быстрый способ сделать это?

Я знаю, что .groupby(by=['col1','col2']).size().to_frame('count').reset_index() даст разреженное представление матрицы.

Пример:

enter image description here

Однако мне нужна не та форма.

1 Ответ

0 голосов
/ 09 апреля 2020

IIU C, я думаю, вам нужно pd.crosstab:

pd.crosstab(tmp['col1'], tmp['col2'])

Вывод:

col2  1  2
col1      
1     1  3
2     1  1

Примечание: 'col1' и 'col2' являются индексными метками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...