Initial commit
This commit is contained in:
136
documentation/new-01.6-pandas-config.md
Normal file
136
documentation/new-01.6-pandas-config.md
Normal file
@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Pandas
|
||||
author: Steve Kossouho
|
||||
---
|
||||
|
||||
# Configurer Pandas
|
||||
|
||||
----
|
||||
|
||||
## Personnaliser l'affichage d'un `DataFrame`
|
||||
|
||||
Par défaut, dans Pandas, afficher un `DataFrame`{.python} fonctionne très bien sur des
|
||||
petits jeux de données, typiquement des objets avec quelques colonnes et quelques lignes.
|
||||
|
||||
Cependant, Pandas est capable de s'ajuster, et lorsque vous devez afficher des jeux
|
||||
de données plus conséquents (ex. des dizaines de colonnes ou des milliers de lignes),
|
||||
vous allez généralement observer un affichage tronqué.
|
||||
|
||||
----
|
||||
|
||||
### Affichage d'un jeu de données de Seaborn
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
# Le jeu de données Iris de Seaborn est disponible directement sur Github
|
||||
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
|
||||
print(iris)
|
||||
```
|
||||
|
||||
Notez dans cet exemple que malgré la présence de 150 lignes, Pandas n'a affiché que 10
|
||||
d'entre elles, à savoir les 5 premières et les 5 dernières.
|
||||
|
||||
----
|
||||
|
||||
Il est possible d'afficher l'intégralité du `DataFrame`{.python} en utilisant une méthode
|
||||
`.to_string(...)`{.python}, qui exporte par défaut le contenu intégral dans une chaîne de
|
||||
caractères :
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
# Le jeu de données Iris de Seaborn est disponible directement sur Github
|
||||
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
|
||||
print(iris.to_string())
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
### La méthode `to_string()`{.python}
|
||||
|
||||
Cette méthode, disponible sur les `DataFrame`{.python} et les `Series`{.python}, extrait
|
||||
par défaut l'intégralité du document vers une chaîne de caractères, et est configurable
|
||||
via un certain nombre d'arguments :
|
||||
|
||||
[Documentation de `DataFrame.to_string()`{.python}](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_string.html)
|
||||
|
||||
----
|
||||
|
||||
La liste des arguments intéressants est la suivante :
|
||||
|
||||
| Argument | Description | Défaut |
|
||||
|-------------------|-------------------------------------------------------------------------------------------------------|--------|
|
||||
| `columns` | Liste des colonnes à inclure dans la sortie. | `None` |
|
||||
| `col_space` | Largeur minimale de chaque colonne. | `None` |
|
||||
| `header` | Écrire les noms des colonnes. | `True` |
|
||||
| `index` | Afficher l'index (étiquettes de ligne). | `True` |
|
||||
| `index_names` | Afficher les noms des index. | `True` |
|
||||
| `max_rows` | Nombre maximum de lignes à afficher. Si `None`, afficher toutes. | `None` |
|
||||
| `min_rows` | Nombre de lignes à afficher dans une représentation tronquée. | `None` |
|
||||
|
||||
----
|
||||
|
||||
| Argument | Description | Défaut |
|
||||
|-------------------|-------------------------------------------------------------------------------------------------------|---------|
|
||||
| `max_cols` | Nombre maximum de colonnes à afficher. Si `None`, afficher toutes. | `None` |
|
||||
| `show_dimensions` | Afficher les dimensions du DataFrame (nombre de lignes par nombre de colonnes) à la fin du DataFrame. | `False` |
|
||||
| `line_width` | Largeur de ligne en caractères pour effectuer un retour à la ligne. | `None` |
|
||||
| `max_colwidth` | Largeur maximale de colonne pour tronquer le texte des colonnes individuelles. | `None` |
|
||||
|
||||
----
|
||||
|
||||
## Personnaliser l'affichage par défaut
|
||||
|
||||
Utiliser la méthode `.to_string()`{.python} à chaque affichage de `DataFrame`{.python} peut vite devenir
|
||||
rébarbatif, surtout si vous précisez souvent de nombreux arguments. Pandas possède un objet de configuration globale
|
||||
qui permet de définir le comportement par défaut de la bibliothèque, notamment en ce qui concerne l'affichage.
|
||||
|
||||
----
|
||||
|
||||
### L'objet `options`{.python}
|
||||
|
||||
Pandas propose une fonction nommée `set_option()`{.python} pour définir des paramètres de fonctionnement
|
||||
de la bibliothèque. On préférera directement travailler avec une variable `options`{.python} qui propose
|
||||
des attributs et de l'autocomplétion dans votre éditeur préféré (via le package `pandas-stubs`).
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
pd.options.display.width = 160 # caractères max par ligne
|
||||
pd.options.display.max_colwidth = 20 # max par colonne
|
||||
...
|
||||
```
|
||||
|
||||
[Options disponibles](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html#pandas.set_option)
|
||||
|
||||
----
|
||||
|
||||
### Options disponibles
|
||||
|
||||
| Attribut de l'option | Explication succincte |
|
||||
|-----------------------------|----------------------------------------------------------------|
|
||||
| `display.max_rows` | Nombre maximum de lignes à afficher |
|
||||
| `display.max_columns` | Nombre maximum de colonnes à afficher |
|
||||
| `display.width` | Largeur maximale de l'affichage en caractères |
|
||||
| `display.max_colwidth` | Largeur maximale en caractères pour une colonne |
|
||||
| `display.precision` | Nombre de décimales à afficher pour les nombres |
|
||||
| `display.float_format` | Format des nombres à virgule flottante |
|
||||
| `display.max_seq_items` | Nombre maximum d'éléments d'une séquence à afficher |
|
||||
| `display.expand_frame_repr` | Expansion automatique des DataFrames pour remplir la largeur |
|
||||
| `display.colheader_justify` | Justification des en-têtes de colonnes (left, right, center) |
|
||||
|
||||
----
|
||||
|
||||
| Attribut de l'option | Explication succincte |
|
||||
|-----------------------------|----------------------------------------------------------------|
|
||||
| `display.show_dimensions` | Afficher les dimensions du DataFrame (True, False, 'truncate') |
|
||||
| `display.memory_usage` | Afficher l'utilisation de la mémoire pour les DataFrames |
|
||||
| `display.large_repr` | Représentation des grandes DataFrames ('truncate', 'info') |
|
||||
| `display.notebook_repr_html` | Utiliser l'HTML pour la représentation dans les notebooks |
|
||||
| `display.html.border` | Largeur de la bordure en pixels pour les représentations HTML |
|
||||
| `display.min_rows` | Nombre minimum de lignes à afficher |
|
||||
| `display.max_info_columns` | Nombre maximum de colonnes à inclure dans la sortie d'info() |
|
||||
| `display.max_info_rows` | Nombre maximum de lignes à inclure dans la sortie d'info() |
|
||||
| `display.memory_usage` | Afficher l'utilisation de la mémoire (True, False, 'deep') |
|
||||
|
Reference in New Issue
Block a user