Introduction
Lorsque vous travaillez avec pandas, vous pouvez parfois vouloir inspecter une ligne d’un DataFrame. Par défaut, pandas affiche une ligne horizontalement, ce qui peut être difficile à lire lorsque le DataFrame contient beaucoup de colonnes.
Table of contents
- Introduction
- Créer un DataFrame d’exemple
- Sélectionner une ligne du DataFrame
- Afficher une Series pandas verticalement
- Convertir la ligne en DataFrame
- Afficher une ligne de DataFrame verticalement avec .T
- Afficher directement une ligne spécifique
- Utiliser display() dans un notebook Jupyter
- Renommer la colonne des valeurs
- Afficher une ligne avec les noms des colonnes et les valeurs
- Afficher la ligne verticalement en texte brut
- Empêcher pandas de tronquer la sortie
- Exemple complet reproductible
- Résumé
- Références
Une façon simple d’améliorer la lisibilité consiste à afficher la ligne verticalement. Cela peut être fait avec l’opérateur de transposition .T.
Créer un DataFrame d’exemple
Commençons par créer un DataFrame pandas simple :
1 2 3 4 5 6 7 8 9 10 11 12 13 | import pandas as pd data = { "name": ["Alice", "Bob", "Charlie"], "age": [25, 30, 35], "city": ["New York", "Paris", "London"], "job": ["Data Analyst", "Developer", "Scientist"], "salary": [70000, 85000, 95000] } df = pd.DataFrame(data) df |
Sortie :
1 2 3 4 | name age city job salary 0 Alice 25 New York Data Analyst 70000 1 Bob 30 Paris Developer 85000 2 Charlie 35 London Scientist 95000 |
Sélectionner une ligne du DataFrame
Vous pouvez sélectionner une ligne avec .iloc[].
Par exemple, pour sélectionner la première ligne :
1 2 3 | row = df.iloc[0] row |
Sortie :
1 2 3 4 5 6 | name Alice age 25 city New York job Data Analyst salary 70000 Name: 0, dtype: object |
Dans ce cas, row est une Series pandas.
Vous pouvez vérifier son type avec :
1 | type(row) |
Sortie :
1 | pandas.core.series.Series |
Afficher une Series pandas verticalement
Une Series pandas est déjà affichée verticalement dans de nombreux cas.
Par exemple :
1 | display(row) |
C’est utile lorsque vous voulez inspecter les valeurs d’une seule ligne dans un format lisible.
Convertir la ligne en DataFrame
Si vous voulez un affichage plus propre sous forme de tableau, vous pouvez convertir la Series en DataFrame :
1 | pd.DataFrame(row) |
Sortie :
1 2 3 4 5 6 | 0 name Alice age 25 city New York job Data Analyst salary 70000 |
Cela affiche les valeurs verticalement, avec les noms des colonnes d’origine comme index.
Afficher une ligne de DataFrame verticalement avec .T
Une autre méthode courante consiste à créer d’abord un DataFrame d’une seule ligne, puis à le transposer avec .T.
1 | pd.DataFrame([row]).T |
Sortie :
1 2 3 4 5 6 | 0 name Alice age 25 city New York job Data Analyst salary 70000 |
.T signifie transpose. Cela inverse les lignes et les colonnes.
Cela signifie que :
1 | pd.DataFrame([row]) |
crée un DataFrame avec une ligne horizontale :
1 2 | name age city job salary 0 Alice 25 New York Data Analyst 70000 |
Puis :
1 | pd.DataFrame([row]).T |
transforme cette ligne en un affichage vertical.
Afficher directement une ligne spécifique
Vous pouvez également sélectionner et afficher une ligne verticalement en une seule ligne :
1 | pd.DataFrame([df.iloc[0]]).T |
Pour la deuxième ligne :
1 | pd.DataFrame([df.iloc[1]]).T |
Pour la troisième ligne :
1 | pd.DataFrame([df.iloc[2]]).T |
Utiliser display() dans un notebook Jupyter
Dans un notebook Jupyter, il est souvent préférable d’utiliser display() plutôt que print() :
1 | display(pd.DataFrame([df.iloc[0]]).T) |
Cela donne une sortie HTML plus propre dans le notebook.
Renommer la colonne des valeurs
Par défaut, le DataFrame transposé peut avoir une colonne nommée 0. Vous pouvez la renommer avec un nom plus clair :
1 2 3 4 | row_vertical = pd.DataFrame([df.iloc[0]]).T row_vertical.columns = ["value"] display(row_vertical) |
Sortie :
1 2 3 4 5 6 | value name Alice age 25 city New York job Data Analyst salary 70000 |
C’est souvent plus facile à lire.
Afficher une ligne avec les noms des colonnes et les valeurs
Une autre approche propre consiste à réinitialiser l’index :
1 2 3 4 | row_vertical = pd.DataFrame([df.iloc[0]]).T.reset_index() row_vertical.columns = ["column", "value"] display(row_vertical) |
Sortie :
1 2 3 4 5 6 | column value 0 name Alice 1 age 25 2 city New York 3 job Data Analyst 4 salary 70000 |
Ce format est très utile lorsque vous voulez un tableau lisible à deux colonnes.
Afficher la ligne verticalement en texte brut
Si vous voulez afficher le résultat en texte brut, utilisez .to_string() :
1 | print(pd.DataFrame([df.iloc[0]]).T.to_string()) |
C’est utile lorsque vous travaillez en dehors d’un notebook Jupyter ou lorsque vous déboguez dans un terminal.
Empêcher pandas de tronquer la sortie
Si votre ligne contient beaucoup de colonnes ou de longues valeurs textuelles, pandas peut tronquer l’affichage.
Vous pouvez forcer pandas à afficher toutes les lignes et toutes les valeurs de colonnes avec :
1 2 3 4 5 6 | with pd.option_context( "display.max_rows", None, "display.max_columns", None, "display.max_colwidth", None ): display(pd.DataFrame([df.iloc[0]]).T) |
C’est utile lorsque vous inspectez de grands DataFrames avec beaucoup de colonnes.
Exemple complet reproductible
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import pandas as pd data = { "name": ["Alice", "Bob", "Charlie"], "age": [25, 30, 35], "city": ["New York", "Paris", "London"], "job": ["Data Analyst", "Developer", "Scientist"], "salary": [70000, 85000, 95000] } df = pd.DataFrame(data) row_vertical = pd.DataFrame([df.iloc[0]]).T row_vertical.columns = ["value"] display(row_vertical) |
Sortie :
1 2 3 4 5 6 | value name Alice age 25 city New York job Data Analyst salary 70000 |
Résumé
Pour afficher une ligne pandas verticalement, vous pouvez utiliser :
1 | pd.DataFrame([df.iloc[0]]).T |
Dans un notebook Jupyter, utilisez :
1 | display(pd.DataFrame([df.iloc[0]]).T) |
Pour une sortie plus propre avec un nom de colonne personnalisé :
1 2 3 4 | row_vertical = pd.DataFrame([df.iloc[0]]).T row_vertical.columns = ["value"] display(row_vertical) |
Afficher une ligne pandas verticalement est une façon simple d’améliorer la lisibilité, surtout lorsque votre DataFrame contient beaucoup de colonnes.
Références
| Links | Site |
|---|---|
| pandas.DataFrame.T | pandas documentation |
| pandas.DataFrame.transpose | pandas documentation |
| pandas.Series | pandas documentation |
| pandas.DataFrame.iloc | pandas documentation |
| pandas.option_context | pandas documentation |
| Options and settings | pandas user guide |
| IPython.display | IPython documentation |
