Effizientes Erstellen spärlicher Pivot-Tabellen in Pandas?

Ich arbeite daran, eine Liste von Datensätzen mit zwei Spalten (A und B) in eine Matrixdarstellung umzuwandeln. Ich habe die Pivot-Funktion in Pandas verwendet, aber das Ergebnis ist ziemlich groß. Unterstützt Pandas das Schwenken in ein spärliches Format? Ich weiß, dass ich es drehen und dann in eine spärliche Darstellung verwandeln kann, aber nicht so elegant, wie ich es gerne hätte. Mein Endziel ist es, es als Input für ein Vorhersagemodell zu verwenden.

Alternativ gibt es eine Art spärliche Pivot-Fähigkeit außerhalb von Pandas?

edit: hier ist ein Beispiel für einen nicht-dünnen 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

Dies erstellt eine Matrix, die alle möglichen Kombinationen von Personen und Dingen enthalten kann, aber nicht spärlich ist.

http: //docs.scipy.org/doc/scipy/reference/sparse.htm

Sparse-Matrizen benötigen weniger Platz, da sie beispielsweise NaN oder 0 implizieren können. Wenn ich einen sehr großen Datensatz habe, kann diese Schwenkfunktion eine Matrix erzeugen, die aufgrund der großen Anzahl von NaNs oder 0s dünn sein sollte. Ich hatte gehofft, dass ich viel Speicherplatz einsparen könnte, indem ich etwas generiere, das von Anfang an dünn ist, anstatt eine dichte Matrix zu erstellen und es dann in dünn umzuwandeln.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage