API · Pandas
Fonction Pandas DataFrame DataFrame.transpose()
La fonction Pandas DataFrame transpose() change les lignes du DataFrame en colonnes et vice versa.
Sur cette page
Utilisez DataFrame.transpose() pour échanger les lignes et les colonnes d’un DataFrame pandas. Le DataFrame renvoyé reprend les étiquettes de ligne d’origine comme étiquettes de colonne, et les étiquettes de colonne d’origine comme étiquettes de ligne.
Syntaxe de DataFrame.transpose()
Appelez la méthode sur l’objet à transposer : df.transpose(). Elle renvoie un DataFrame transposé ; l’objet d’origine reste accessible sous le nom df.
Ce guide porte sur l’appel sans argument et n’aborde pas les options propres à certaines versions.
Exemple : transposer un DataFrame avec DataFrame.transpose()
Cet exemple crée un petit tableau contenant des noms d’élèves, leur présence et leurs notes. Après l’appel, chaque colonne d’origine devient une ligne, et chaque étiquette de l’index d’origine devient une colonne.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Obtained Marks": [90, 75, 82, 64, 45],
}
)
transposed = dataframe.transpose()
print(transposed)
Les étiquettes permettent de vérifier plus facilement le sens de l’échange : Attendance, Name et Obtained Marks désignent les lignes du résultat, tandis que les valeurs de 0 à 4 en désignent les colonnes.
Transposer un DataFrame dont les types de données sont homogènes
Lorsque toutes les colonnes contiennent des entiers, les valeurs de l’entrée sont d’un même type. Transposez-la et examinez les types des colonnes avant et après l’opération pour voir comment cet exemple est représenté dans votre environnement pandas.
import pandas as pd
dataframe = pd.DataFrame(
{
"A": [6, 20, 80, 78, 95],
"B": [60, 50, 7, 67, 54],
}
)
transposed = dataframe.transpose()
print("Original values:")
print(dataframe)
print("Transposed values:")
print(transposed)
print("Original dtypes:")
print(dataframe.dtypes)
print("Transposed dtypes:")
print(transposed.dtypes)
Cette entrée comporte cinq lignes, étiquetées de 0 à 4, et deux colonnes, A et B. Le résultat comporte donc deux lignes et cinq colonnes. Pour cette entrée précise, consultez les informations de type affichées au lieu de supposer que tous les DataFrame numériques auront le même type après transposition : le résultat peut dépendre des valeurs et de la représentation des types utilisées.
Transposer un DataFrame avec des types de données mixtes
Un DataFrame peut contenir des colonnes de types différents. Ici, deux colonnes contiennent des nombres et une troisième des noms. Le code affiche les valeurs et les types avant et après l’opération afin que vous puissiez examiner le résultat pour cette entrée.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Obtained Marks": [90, 75, 82, 64, 45],
}
)
transposed = dataframe.transpose()
print("Original values:")
print(dataframe)
print("Transposed values:")
print(transposed)
print("Original dtypes:")
print(dataframe.dtypes)
print("Transposed dtypes:")
print(transposed.dtypes)
Chaque ligne transposée rassemble les valeurs provenant d’une colonne d’origine. Comme ces lignes contiennent à la fois des chaînes de caractères et des nombres, examinez les types obtenus au lieu de considérer cet exemple comme une règle valable pour toutes les versions de pandas ou tous les systèmes de types. La méthode échange les axes ; elle ne rend pas homogènes les colonnes d’origine avant la transposition.