Python Pandas: Wie verwandle ich einen DataFrame mit „Faktoren“ in eine Entwurfsmatrix für die lineare Regression?

Wenn der Speicher mir dient, gibt es in R einen Datentyp namens Faktor, der bei Verwendung in einem DataFrame automatisch in die erforderlichen Spalten einer Regressionsentwurfsmatrix entpackt werden kann. Beispielsweise würde ein Faktor, der True / False / Maybe-Werte enthält, in Folgendes umgewandelt:

<code>1 0 0
0 1 0
or
0 0 1
</code>

für den Zweck der Verwendung von Regressionscode niedrigerer Ebene. Gibt es eine Möglichkeit, mit der Pandas-Bibliothek etwas Ähnliches zu erreichen? Ich sehe, dass es eine gewisse Regressionsunterstützung innerhalb von Pandas gibt, aber da ich meine eigenen angepassten Regressionsroutinen habe, bin ich wirklich interessiert an der Konstruktion der Entwurfsmatrix (ein 2d-Numpy-Array oder eine Matrix) aus heterogenen Daten mit Unterstützung für die Zuordnung von Back und Fort dazwischen Spalten des numpy-Objekts und des Pandas-DataFrame, von dem es abgeleitet ist.

Update: Hier ist ein Beispiel für eine Datenmatrix mit heterogenen Daten, wie ich sie mir vorstelle (das Beispiel stammt aus dem Pandas-Handbuch):

<code>>>> df2 = DataFrame({'a' : ['one', 'one', 'two', 'three', 'two', 'one', 'six'],'b' : ['x', 'y', 'y', 'x', 'y', 'x', 'x'],'c' : np.random.randn(7)})
>>> df2
       a  b         c
0    one  x  0.000343
1    one  y -0.055651
2    two  y  0.249194
3  three  x -1.486462
4    two  y -0.406930
5    one  x -0.223973
6    six  x -0.189001
>>> 
</code>

Die 'a'-Spalte sollte in 4 Gleitkommaspalten konvertiert werden (trotz der Bedeutung gibt es nur vier eindeutige Atome), die' b'-Spalte kann in eine einzelne Gleitkommaspalte konvertiert werden, und die 'c'-Spalte sollte konvertiert werden eine unveränderte letzte Spalte in der Entwurfsmatrix sein.

Vielen Dank,

SetJmp

Antworten auf die Frage(4)

Ihre Antwort auf die Frage