У меня есть журнал использование в кадре панды данных:Создание таблицы смежности из бревна в dataframe
event_time session_id object
10:00:03 1 A
10:00:03 1 B
10:00:03 1 C
10:00:03 1 E
10:00:03 2 J
10:00:03 2 O
10:00:03 2 A
10:00:03 2 A
Я сгруппировал объекты по session_id. Теперь я хочу построить матрицу совпадений объектов против объектов с каждой ячейкой для любой пары объектов, содержащих количество раз, когда эти объекты совместно происходят в группе (то есть против одного и того же session_id): Что-то в следующих строках:
A B C ...
A 20 1 12
B 1 100 9
C 12 9 30
...
есть ли способ, чтобы иметь выше в Словаре форме, все ненулевые случаи не представлены для «ключа» любого объекта?
Очевидно, что матрица будет треугольной. Есть ли способ, чтобы повернуть матрицу в расплавленные таблицы данных формы:
Object 1 Object 2 # of co-occurences
A A 20
A B 1
... ... ...
Заранее спасибо за любую помощь.
UPDATE: Я запускаю algos для прототипирования на 12MB данных, но будет запускать «для реального» на AMAZON на c. 2-3 ГБ данных из набора данных с несколькими ТБ. Я не думаю, что GB - это довольно территория Свиньи - чем эффективнее предлагаемый ответ, тем лучше
Я хочу, чтобы иметь возможность искать объекты в словаре, а затем просматривать все объекты, которые совместно происходят с ними, и отсчеты (может в конечном итоге индексации эту структуру в Solr в будущем)
Это похоже на то, я мог бы использовать, чтобы построить таблицу совместно встречаемости, глядя на колоннах. Мой страх в том, что с большими наборами данных 0 станет недопустимым для памяти (поскольку матрица будет разреженной). – user7289
Не знаете, как вы можете это сделать, используя SparseDataFrame (ни одно решение здесь не разрешено), возможно, что это как MultiIndex может быть более эффективным с точки зрения пространства. –