J'ai un bloc de données de pandas avec plusieurs entrées et je veux calculer la corrélation entre les revenus de certains types de magasins. Il existe un certain nombre de magasins avec des données sur le revenu, une classification du domaine d'activité (théâtre, magasins de tissus, alimentation ...) et d'autres données.
J'ai essayé de créer un nouveau bloc de données et d'insérer une colonne avec le revenu de tous les types de magasins appartenant à la même catégorie. Le bloc de données renvoyé n'a que la première colonne remplie et le reste est rempli de NaN. Le code que j'ai fatigué:
corr = pd.DataFrame()
for at in activity:
stores.loc[stores['Activity']==at]['income']
Je souhaite le faire afin de .corr()
pouvoir donner la matrice de corrélation entre les catégories de magasins.
Après cela, j'aimerais savoir comment tracer les valeurs de la matrice (-1 à 1, car je veux utiliser la corrélation de Pearson) avec matplolib.
Réponses:
Je suggère une sorte de jeu sur ce qui suit:
Utiliser les données UCI Abalone pour cet exemple ...
Fonction de tracé de la matrice de corrélation:
# Fonction de tracé matriciel de corrélation
J'espère que cela t'aides!
la source
import numpy as np
n'est pas nécessaire, n'est-ce pas?cbar
, alors pourquoi l'assignez-vous?Une autre alternative consiste à utiliser la fonction heatmap dans seaborn pour tracer la covariance. Cet exemple utilise l'ensemble de données automatique du package ISLR dans R (le même que dans l'exemple que vous avez présenté).
Si vous voulez être encore plus chic, vous pouvez utiliser Pandas Style , par exemple:
la source
rpy
module. Vous devez utiliser le projet autonomerpy2
. Voir l' avertissement des Pandas ici .Pourquoi ne pas simplement faire ceci:
Vous pouvez changer la palette de couleurs en utilisant le
cmap
paramètre:la source