Sans données réelles, il est difficile de répondre à la question, mais je suppose que vous recherchez quelque chose comme ceci :
Top15['Citable docs per Capita'].corr(Top15['Energy Supply per Capita'])
Cela calcule la corrélation entre vos deux colonnes. 'Citable docs per Capita'
et 'Energy Supply per Capita'
.
Pour donner un exemple :
import pandas as pd
df = pd.DataFrame({'A': range(4), 'B': [2*i for i in range(4)]})
A B
0 0 0
1 1 2
2 2 4
3 3 6
Puis
df['A'].corr(df['B'])
donne 1
comme prévu.
Maintenant, si vous modifiez une valeur, par exemple
df.loc[2, 'B'] = 4.5
A B
0 0 0.0
1 1 2.0
2 2 4.5
3 3 6.0
le commandement
df['A'].corr(df['B'])
renvoie à
0.99586
qui est toujours proche de 1, comme prévu.
Si vous appliquez .corr
directement à votre cadre de données, elle renverra toutes les corrélations par paires entre vos colonnes ; c'est pourquoi vous observez ensuite 1s
à la diagonale de votre matrice (chaque colonne est parfaitement corrélée avec elle-même).
df.corr()
retournera donc
A B
A 1.000000 0.995862
B 0.995862 1.000000
Dans le graphique que vous montrez, seul le coin supérieur gauche de la matrice de corrélation est représenté (je suppose).
Il peut y avoir des cas, où vous obtenez NaN
dans votre solution - vérifiez ce poste pour un exemple.
Si vous voulez filtrer les entrées au-dessus/en dessous d'un certain seuil, vous pouvez vérifier cette question . Si vous voulez tracer une carte thermique des coefficients de corrélation, vous pouvez vérifier cette réponse et si vous rencontrez ensuite le problème de chevauchement des étiquettes d'axe, vérifiez le poste suivant .
0 votes
Je pense que vous avez raison. Mais pouvez-vous me dire pourquoi la fonction 'data.corr(method='pearson')' ne renvoie que la relation entre l'offre et la demande d'énergie ?
1 votes
Ce n'est pas le cas. Il devrait vous renvoyer une matrice 2x2 ; vous montrez son entrée supérieure gauche. Si vous appliquez
.corr
directement à votre dataframe, il renverra toutes les corrélations par paire ; c'est pourquoi vous observez des 1 à la diagonale de votre matrice (chaque colonne est parfaitement corrélée avec elle-même). Voir mon édition ci-dessous.1 votes
Veuillez considérer accepter une réponse si vous pensez qu'il a répondu à votre question
1 votes
J'ai accepté votre réponse, merci
0 votes
Je n'ai pas trouvé le bouton que vous avez indiqué. J'ai juste appuyé sur la flèche du haut à côté de votre réponse.
56 votes
Cette question provient directement du cours "Introduction à la science des données en Python" sur Coursera. Plus précisément, le devoir 3, question 9. Lorsque l'instructeur Chris Brooks encourage les étudiants à poster des questions sur Stack Overflow, je ne pense pas qu'il voulait dire qu'ils devaient poster les problèmes des devoirs mot pour mot.
2 votes
Poster du contenu provenant directement de Coursera viole également le code d'honneur.