Explorer les données est une étape préliminair essentielle à toute analyse de données. Les fonctionnalités plotting du module pandas permettent rapidement d'obtenir un maximum de graphiques pour s'approprier un jeu de données.
import easygui # cf. aide, comment ouvrir une dataframe
import pandas as pd
mydata = pd.read_excel(easygui.fileopenbox()) # On peut remplacer easygui.fileopenbox() par le nom du fichier.
# Dans les exemples ci-dessous, nous allons ouvrir le tableau suivant : analyses sanguines.
import matplotlib.pyplot as plt
# Etape 1 - Centrer les données contenues dans une dataframe mydata
temp = mydata.sub(mydata.mean()) # soustraire la moyenne
# Etape 2 - Réduire les données
temp = temp.div(temp.std()) # diviser par l'écart-type
# Etape 3 - (optionnel) Trier éventuellement les données en fonction d'une colonne
temp = temp.sort_values(by = 'VGM')
# Etape 4 - (optionnel) Transposer les données pour basculer x et y
temp = temp.T
print(temp)
# Etape 5 - Tracer la heatmap()
import seaborn as sns; sns.set()
sns.heatmap(temp,cmap="viridis")
plt.show()
#https://matplotlib.org/examples/color/colormaps_reference.html pour la couleur
Visualiser l'ensemble des scatter-plot possibles d'un jeu de données avec la fonction scatter_matrix :
from pandas.plotting import scatter_matrix
scatter_matrix(mydata.iloc[:,1:7], alpha = 1, figsize = (6, 6), diagonal = 'kde',color="red")
plt.show() # On voit que les variables discrètes sont éliminées
# On part du principe que pandas est importé ainsi qu'une dataframe ouverte : mydata
mydata.plot()
plt.show()
mydata.plot(kind="area") ; plt.show()
mydata.plot(kind='hist',alpha=0.5,bins=20) ; plt.show()
mydata.hist(bins=20,color="red") ; plt.show()
Faire un tel affichage est simple mais pause un problème d'échelle car chaque variable aura la même échelle y que l'autre.
Remarque : on peut mettre plusieurs variables et proposer plusieurs catégories mais cela sera vite limitée à cause des problèmes d'échelle.
mydata.plot(kind='box',subplots=True, layout=(2,3)) ; plt.show() # Exemple 1
mydata.boxplot(column=["Hématies"], by=["Santé"]) # Exemple 2 - Afficher une variable en fonction d'une variable de catégories.
mydata.plot(kind="bar")
mydata.plot(kind="scatter", x="VGM" , y="Hématies",
c='Santé',s=100,cmap="viridis")
plt.show()
Dans cet exemple, on donne une variable (numérique) de catégories pour définir la coloration.
Attention : cette variable ne peut être discrète, sinon, il faudra songer à en créer une avec apply() (suivre le lien).
mydata.iloc[3:,1:7].plot.kde(subplots=True,figsize=(12,9)) ; plt.show()
Remarque : cette commande sature si le tableaux présente trop de variables.
Pour nettoyer les données manquantes NA avant affichage
La paramètre bw_method=0.1
permet de changer la fenêtre de lissage.
Cela permet de comparer plusieurs variable : le problème est que si c'est variable n'ont pas la même échelle/amplitude, on ne peut pas voir bien la courbe.
Ex : hématies est écrasé par l'échelle de plaquettes