In diesem Artikel Pandas 0.18.Ich benutze 1.
Wenn eine Person, die R verwendet, versucht, dasselbe mit Python zu tun (scikit-learn), kann es Fälle geben, in denen es schwierig ist, mit kategorialen Variablen umzugehen. Kategoriale Daten können nicht wie von sklearn behandelt werden (wenn numpy.ndarray als Eingabe verwendet wird). Konvertieren Sie sie daher in eine Dummy-Variable.
Die Daten sind wie folgt. Es wird angenommen, dass das Geschlecht 1 für Männer, 2 für Frauen und das Alter Werte 1 bis 3 hat, die jeder Altersgruppe entsprechen.
df1
id sex age
0 1001 1 3
1 1002 2 2
2 1003 1 3
3 1004 2 1
4 1005 2 1
df1 = df1.reset_index(drop=True) #Ich werde es später mit dem Index zusammenführen, also initialisiere es für alle Fälle
dummy_df = pd.get_dummies(df1[['sex', 'age']], drop_first = True)
print dummy_df
sex_2 age_2 age_3
0 0.0 0.0 1.0
1 1.0 1.0 0.0
2 0.0 0.0 1.0
3 1.0 0.0 0.0
4 1.0 0.0 0.0
Es ist schön in eine Dummy-Variable gemacht. Nach dem Festlegen einer Dummy-Variablen für jede Variable entfernt drop_first die erste Variable. (Wenn Sie es verlassen, werden die Variablen abhängig und es ist unpraktisch, daher ergreifen wir Maßnahmen, um es hier auszuschließen.) Bitte beachten Sie, dass drop_first mit Pandas 0.18.0 oder höher kompatibel ist.
df2 = pd.merge(df1, dummy_df, left_index=True, right_index=True)
print df2
id sex age sex_2 age_2 age_3
0 1001 1 3 0.0 0.0 1.0
1 1002 2 2 1.0 1.0 0.0
2 1003 1 3 0.0 0.0 1.0
3 1004 2 1 1.0 0.0 0.0
4 1005 2 1 1.0 0.0 0.0
Nach dem Zusammenführen können Sie sehen, dass es ordnungsgemäß als Dummy-Variable erstellt wurde.
Recommended Posts