У меня есть датафрейм с 49 столбцами. Большинство из них являются категориальными (объект типа), некоторые числовыми. Поскольку я новичок ie в науке о данных, я попытался построить тепловую карту корреляции Пирсона и увидеть корреляцию независимых переменных, но учитываются только числовые c переменные.
Итак, как получить связь между категориальными и числовыми переменными кадра данных?
Вот выдержка из моего кадра данных:
>>> df1.head(3)
Sexe date_naissance Groupe_dage ville Statut_marital Niveau_de_scolarite Situation_professionnelle Autre_situation_professionnelle Revenu_mensuel Si_connexion_internet Canal_acces_info Autre_canal_acces_info Si_situtation_ville_degradee Si_intention_emigration Besoin_Sante Besoin_Education Besoin_Conditions_de_vie Besoin_Lutte_contre_criminalite Besoin_Emploi Besoin_Lutte_contre_corruption Besoin_Eau_potable Besoin_Infrastructures Besoin_Culture_art Besoin_Amelioration_services_publics Besoin_Acces_logement Besoin_Autres_besoins Non_declaration_besoins Autres_besoins Si_connait_president_commune Si_connait_parlementaires Si_inscrit_LE Si_vote_2016 Intention_vote_2021 Consentement Langue_du_questionnaire region id_reg status nbr_app adherent
0 Une femme 1964-04-15 Entre 45 et 54 ans Al Hoceima Marié et je n'ai pas encore d'enfants à charge 1er cycle universitaire / Licence Je suis independent NaN 5,000-7,499 DHS Oui Internet NaN Je suis d'accord Je ne suis pas d'accord True False True False True False False False False False False False False NaN Oui Oui Oui Oui Je sais déjà pour qui je vais voter en 2021 J'accepter d'être recontacté Arabe Tanger-Tetouan-Al Hoceima 1.0 Qualifié 3.0 True
1 Une femme NaN Entre 18 et 24 ans Tétouan Célibataire 1er cycle universitaire / Licence Je suis journalier, je travaille de temps à a... NaN 1-2,499 DHS Non Internet NaN Je suis d'accord Je suis d'accord True True False False True False False False False False False False False NaN Oui Non Non NaN Je ne voterai pas en 2021 Non Arabe Tanger-Tetouan-Al Hoceima 1.0 NaN NaN NaN
2 Un homme NaN Entre 25 et 34 ans Khenifra Marié et j'ai des enfants à charge Niveau lycée Je suis journalier, je travaille de temps à a... NaN Je préfére ne pas répondre Non Télévision NaN Je suis d'accord Je suis d'accord True False True False True False False False False False False False False NaN Oui Non Non NaN Je vais voter en 2021 mais je ne sais toujours... J'accepter d'être recontacté Arabe Beni Mellal-Khenifra 5.0 Na veut pas répondre 2.0 NaN
Моя попытка
После этого руководства по категориальному кодированию Я попробовал следующее:
# for each column where dtype is object
for column in df1.columns:
if df1[column].dtypes == np.object:
df1[column] = df1[column].astype('category')
df1[column] = df1[column].cat.codes
#Using Pearson Correlation
cor = df1.corr()
mask = np.zeros_like(cor, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
plt.figure(figsize=(12,10))
sns.heatmap(cor,
vmin=-1,
cmap='coolwarm',
annot=False,
mask = mask);
Я думаю, это не имеет смысла, поскольку я делаю корреляцию между категориальными переменными или числовыми и категориальными переменными.