Files
training.python.datascience/documentation/01.6-pandas-config.md
Steve Kossouho d06fd5414d Rename documentation files
Removed new- prefix.
Added old- prefix to old files.
2025-07-12 17:03:38 +02:00

137 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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') |