Comment afficher une ligne ou une Series pandas verticalement en Python

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.

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