首页 > 解决方案 > 如何获得数据框的分类变量和数值变量之间的关系?

问题描述

我有一个包含 49 列的数据框。它们中的大多数是分类的(dtype 对象),有些是数字的。由于我是数据科学的新手,我尝试绘制 Pearson 相关热图并查看自变量的相关性,但只考虑数字变量。

那么如何获得数据框的分类变量和数值变量之间的关系呢?

这是我的数据框的摘录:

>>> 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

我的尝试

按照this guide on categorical encoding,我尝试了以下方法:

# 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);

我想这没有意义,因为我正在做分类变量或数值和分类变量之间的相关性。

标签: pythonpython-3.xcorrelationcategorical-datadtype

解决方案


推荐阅读