[PYTHON] Créer des variables factices avec des pandas (get_dummies)

Créer des variables factices avec des pandas

Dans cet article pandas 0.18.J'utilise 1.

Si quelqu'un utilisant R essaie de faire de même avec Python (scikit-learn), il peut y avoir des cas où il est difficile de gérer des variables catégorielles. Les données catégorielles ne peuvent pas être gérées telles quelles par sklearn (lorsque numpy.ndarray est utilisé comme entrée), alors convertissez-les en une variable factice.

Les données sont les suivantes. On suppose que le sexe a 1 pour les hommes, 2 pour les femmes et l'âge a les valeurs 1 à 3 correspondant à chaque groupe d'âge.

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)    #Je le fusionnerai avec l'index plus tard, alors initialisez-le juste au cas où

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

C'est bien transformé en une variable factice. Après avoir défini une variable factice pour chaque variable, drop_first supprime la première variable. (Si vous le laissez, les variables deviendront dépendantes et ce n'est pas pratique, nous prenons donc des mesures pour l'exclure ici) Veuillez noter que drop_first est compatible avec pandas 0.18.0 ou version ultérieure.


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

Après la fusion, vous pouvez voir qu'elle est correctement créée en tant que variable factice.

Recommended Posts

Créer des variables factices avec des pandas (get_dummies)
Créer une bibliothèque de mutations de séquences protéiques avec des pandas
Apprenez les pandas en 10 minutes
Créer Spatia Lite en Python
UnicodeDecodeError dans pandas read_csv
Convertissez les variables numériques en variables catégorielles avec les pandas en définissant un seuil
Comment créer une trame de données et jouer avec des éléments avec des pandas
Créer une fonction en Python
Créer un dictionnaire en Python
Gérer les variables d'environnement en Python
Variables d'environnement HTTP dans Flask
Créer un fichier de données factice
Permuter les colonnes dans les trames de données pandas