Donnez un style à vos pandas DataFrames – Vers la science des données
Créons quelque chose de plus que des nombres simples.
Les visualisations de données sont d’excellents outils pour déduire des résultats significatifs à partir de données simples. Ils sont largement utilisés dans le processus d’analyse exploratoire des données afin de mieux comprendre les données disponibles. Et si vous intégriez quelques structures de visualisation dans des cadres de données pandas? Je pense que cela les rend plus beaux que les chiffres simples. De plus, nous pouvons ajouter un certain pouvoir informatif sur l’affichage d’une trame de données.
Nous pouvons y parvenir en utilisant Style propriété des dataframes pandas. La propriété Style renvoie un styler objet qui fournit de nombreuses options de formatage et d’affichage des trames de données. Dans cet article, nous allons parcourir plusieurs exemples et voir comment une trame de données peut être affichée dans différents styles.
Il existe des fonctions de style intégrées que nous pouvons utiliser en ajustant les paramètres. Nous pouvons également écrire nos propres fonctions de style et les transmettre à l’objet styler qui implémente ensuite les styles avant le rendu.
Il existe deux façons d’utiliser des objets de style. Le premier est le style élément par élément qui peut être fait avec applymap méthode. L’autre est le style colonne ou ligne qui nécessite d’utiliser appliquer méthode.
Créons d’abord un exemple de trame de données avec numpy et pandas.
df = pd.DataFrame({'A':np.linspace(1,8,8),
'B':np.random.random(8),
'C':np.random.randn(8),
'D':np.random.randn(8),
'E':np.random.randint(-5,5,8)})df.iloc[[1,5],[1,3]] = np.nan
df
Cela semble simple et simple. Nous pouvons écrire une fonction pour afficher certaines valeurs avec une couleur différente en fonction d’une condition. Par exemple, nous pouvons choisir d’afficher les valeurs négatives en rouge. Voici la fonction pour accomplir cette tâche.
def color_negative_values(val):
color = 'red' if val < 0 else 'black'
return 'color: %s' % color
Ensuite, nous le passons simplement à la méthode applymap.
df.style.applymap(color_negative_values)
Applymap exécute des opérations élément par élément alors que appliquer le fait sur la base de colonnes ou de lignes. Voici une fonction qui modifie la couleur d’arrière-plan de la valeur maximale dans une colonne.
def color_max(s):
is_max = s == s.max()
return ['background-color: lightblue' if v else '' for v in is_max]
Nous avons juste besoin de le passer pour appliquer la méthode.
df.style.apply(color_max)
Nous pouvons également appliquer cette fonction aux lignes en définissant le paramètre d’axe sur 1.
df.style.apply(color_max, axis=1)
La valeur maximale de chaque ligne est colorée. Ils se trouvaient se trouver dans la colonne «A» pour notre cas.
Nous pouvons combiner différentes fonctions de style par des opérations en chaîne.
df.style.applymap(color_negative_values).apply(color_max)
Les fonctions de style peuvent être partiellement appliquées à une trame de données en sélectionnant des lignes ou des colonnes particulières à l’aide de sous-ensemble paramètre.
df.style.apply(color_max, subset=['B','C'])
La fonction Color_max est appliquée aux colonnes « B » et « C ».
En plus des fonctions personnalisées, les pandas ont des fonctions de style intégrées qui peuvent satisfaire des tâches courantes. Par exemple, highlight_null la fonction marque les valeurs manquantes.
df.style.highlight_null(null_color='yellow')
Nous pouvons changer la couleur avec null_color paramètre. Une autre fonction intégrée utile est background_gradient qui marque la cellule proportionnelle aux valeurs avec l’aide de seaborn.
import seaborn as snscm = sns.light_palette("green", as_cmap=True)df.style.background_gradient(cmap=cm)
Plus la valeur est élevée, plus la couleur d’arrière-plan est sombre. Les valeurs manquantes sont séparées par un fond noir.
Highlight_max et highlight_min fonctions marque les valeurs maximale et minimale dans une colonne ou une ligne comme notre fonction color_max personnalisée.
df.style.highlight_min(color='lightgreen', axis=1)
df.style.highlight_max()
La valeur par défaut du paramètre d’axe est 0 qui effectue des opérations par colonne.
Set_properties La fonction permet de combiner plusieurs sélections de style.
df.style.set_properties(**{'background-color': 'lightblue',
'color': 'black',
'border-color': 'white'})
Une autre fonction très utile est bar qui trace des barres sur les cellules dont les longueurs sont proportionnelles aux valeurs dans les cellules.
df.style.bar(color='lightgreen')
En utilisant aligner paramètre, nous pouvons afficher des valeurs négatives et positives avec des couleurs différentes.
df.style.bar(align='mid', color=['red', 'lightgreen'])