Regarder un tableau¶
Une première analyse d'un tableau se fait en le regardant. Bien sûr, si le tableau est très grand un simple print (ou display) ne va pas suffire. Voici deux facons de regarder en détail un grand tableau.
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(1000, 4), # random variation everyday, an array of 1000 x 4
columns=['A', 'B', 'C', 'D'],
index=pd.date_range('1/1/2000', periods=1000))
df = df.cumsum() # cumulative sum to make something like a regular variation (temperature, stock...)
Dtale¶
Il s'agit d'un paquet qui permet d'avoir une présentation interactive d'un tableau. Ses possibilités sont très nombreuses et permettent d'avoir une bonne compréhesion des données.
Pour tester vous pouvez
- cliquer sur les noms des colonnes pour faire plein de chose
- utiliser les menus (allez dans l'espace étroit au dessus des colonnes et alors vous les verrez apparaitre)
- cliquer dans une case pour modifier sa valeur
- cliquer dans le triangle en haut à gauche pour ouvrir le tableau dans une autre fenêtre ou faire des manipulations globales
Autant j'apprécie cet outil pour analyser les données, autant je ne veux pas m'en servir pour modifier le tableau car alors je perdrais l'historique des modifications apportées. Je modifie avec des commandes Pandas que je peux modifier et relancer si besoin.
import dtale
dtale.show(df)
La commande suivante permet que la feuille Jupyter prenne toute la largeur de la fenêtre (souvent elle n'en prend qu'une partie) :
from IPython.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
Graphiques¶
Nous autres, pauvres humains, avons du mal à lire des milliers de chiffres. Par contre, un bon graphique permet de comprendre.
Aussi le prochain chapitre est entièrement
consacré aux différentes bibliothèques graphiques.
En attendant utilisons la fonction tracé plot
qui est souvent suffisante.
Il n'est pas nécessaire de rentrer dans les détails de cette fonction pour l'instant. Elle fonctionne comme
la même fonction de la bibliothèque Matplotlib que l'on verra au prochain chapitre.
Note : sous Jupyter il est nécessaire d'indiquer %matplotlib inline
pour que les graphiques s'affichent (à ne faire
qu'une fois par feuille). Si vous avez un écran en haute résolution, utilisez le mode retina
pour avoir un rendu
plus joli.
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
df.plot(figsize=(14,6))
<Axes: >
Fenêtre glissante¶
Un outil bien utile de Pandas pour préparer des données que l'on désire tracer est la fenêtre glissante sur laquelle on applique une fonction de son choix (souvent la moyenne mais l'ensemble des fonctions statistiques citées ci-dessus peuvent être utilisées).
La taille de la fenêtre glissante est
- un entier qui indique le nombre de lignes du tableau choisies
- un intervalle temporel (seulement pour les tableaux chronologiques)
df.rolling(window=30).mean().plot(subplots=True)
array([<Axes: >, <Axes: >, <Axes: >, <Axes: >], dtype=object)
df['A'].rolling('30d').max().plot(color='red')
df['A'].rolling('30d').mean().plot(color='purple', style=':')
df['A'].rolling('30d').min().plot(title="Rolling max / mean / min over 30 days of M", color='orange')
<Axes: title={'center': 'Rolling max / mean / min over 30 days of M'}>
On peut aussi faire des statistiques sur des fenêtres glissantes :
df.A.cov(df.A.rolling(window=30).mean())
32.62982887672163