Эффективно создавать разреженные сводные таблицы в пандах?
Я работаю над превращением списка записей с двумя столбцами (A и B) в матричное представление. Я использовал функцию pivot в пандах, но в результате получаю довольно большой результат. Поддерживает ли панда поворот в разреженный формат? Я знаю, что могу повернуть его, а затем превратить в какое-то разреженное представление, но не так элегантно, как хотелось бы. Моя конечная цель - использовать его в качестве входных данных для прогнозирующей модели.
В качестве альтернативы, есть ли какая-то редкая возможность разворота за пределами панд?
редактировать: вот пример не разреженного центра
import pandas as pd
frame=pd.DataFrame()
frame['person']=['me','you','him','you','him','me']
frame['thing']=['a','a','b','c','d','d']
frame['count']=[1,1,1,1,1,1]
frame
person thing count
0 me a 1
1 you a 1
2 him b 1
3 you c 1
4 him d 1
5 me d 1
frame.pivot('person','thing')
count
thing a b c d
person ,
him NaN 1 NaN 1
me 1 NaN NaN 1
you 1 NaN 1 NaN
Это создает матрицу, которая может содержать все возможные комбинации людей и вещей, но это не редкость.
http://docs.scipy.org/doc/scipy/reference/sparse.html
Разреженные матрицы занимают меньше места, потому что могут подразумевать такие вещи, как NaN или 0. Если у меня очень большой набор данных, эта функция поворота может генерировать матрицу, которая должна быть разреженной из-за большого числа NaN или 0. Я надеялся, что смогу сэкономить много места / памяти, сгенерировав что-то редкое сразу, а не создав плотную матрицу, а затем преобразовав ее в разреженную.