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 dataframeimport pandas as pdmydata = 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 mydatatemp = mydata.sub(mydata.mean()) # soustraire la moyenne# Etape 2 - Réduire les donnéestemp = temp.div(temp.std()) # diviser par l'écart-type# Etape 3 - (optionnel) Trier éventuellement les données en fonction d'une colonnetemp = temp.sort_values(by = 'VGM')# Etape 4 - (optionnel) Transposer les données pour basculer x et ytemp = temp.Tprint(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 couleurVisualiser l'ensemble des scatter-plot possibles d'un jeu de données avec la fonction scatter_matrix :
from pandas.plotting import scatter_matrixscatter_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 : mydatamydata.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 1mydata.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