
Pour vérifier les données de pandas.DataFrame et pandas.Series avec de nombreuses lignes, les méthodes head() et tail() qui renvoient les n premières et dernières lignes sont utiles.
Cet article décrit le contenu suivant.
- Obtenez les n premières lignes de DataFrame :
head() - Obtenez les n dernières lignes de DataFrame :
tail() - Obtenir des lignes en spécifiant les numéros de ligne : slice
- Obtenir les valeurs de la première/dernière ligne
Notez qu’une autre méthode que vous pouvez utiliser pour vérifier les pandas.DataFrame et pandas.Series de grande taille est sample() pour un échantillonnage aléatoire.
À titre d’exemple, utilisez l’ensemble de données d’iris inclus comme échantillon dans seaborn.
import pandas as pd
import seaborn as sns
df = sns.load_dataset("iris")
print(df.shape)
# (150, 5)
L’exemple suivant concerne pandas.DataFrame, mais pandas.Series a également head() et tail(). L’utilisation est la même pour les deux.
Obtenez les n premières lignes de DataFrame :head()
La méthode head() renvoie les n premières lignes.
Par défaut, les 5 premières lignes sont renvoyées.
print(df.head())
# sepal_length sepal_width petal_length petal_width species
# 0 5.1 3.5 1.4 0.2 setosa
# 1 4.9 3.0 1.4 0.2 setosa
# 2 4.7 3.2 1.3 0.2 setosa
# 3 4.6 3.1 1.5 0.2 setosa
# 4 5.0 3.6 1.4 0.2 setosa
Vous pouvez spécifier le nombre de lignes.
print(df.head(3))
# sepal_length sepal_width petal_length petal_width species
# 0 5.1 3.5 1.4 0.2 setosa
# 1 4.9 3.0 1.4 0.2 setosa
# 2 4.7 3.2 1.3 0.2 setosa
Obtenez les n dernières lignes de DataFrame :tail()
La méthode tail() renvoie les n dernières lignes.
Par défaut, les 5 dernières lignes sont renvoyées.
print(df.tail())
# sepal_length sepal_width petal_length petal_width species
# 145 6.7 3.0 5.2 2.3 virginica
# 146 6.3 2.5 5.0 1.9 virginica
# 147 6.5 3.0 5.2 2.0 virginica
# 148 6.2 3.4 5.4 2.3 virginica
# 149 5.9 3.0 5.1 1.8 virginica
Vous pouvez spécifier le nombre de lignes.
print(df.tail(3))
# sepal_length sepal_width petal_length petal_width species
# 147 6.5 3.0 5.2 2.0 virginica
# 148 6.2 3.4 5.4 2.3 virginica
# 149 5.9 3.0 5.1 1.8 virginica
Obtenir des lignes en spécifiant les numéros de ligne : slice
Il est également possible d’obtenir des lignes en utilisant slice.
print(df[50:55])
# sepal_length sepal_width petal_length petal_width species
# 50 7.0 3.2 4.7 1.4 versicolor
# 51 6.4 3.2 4.5 1.5 versicolor
# 52 6.9 3.1 4.9 1.5 versicolor
# 53 5.5 2.3 4.0 1.3 versicolor
# 54 6.5 2.8 4.6 1.5 versicolor
Vous pouvez utiliser des tranches pour faire la même chose que head() et tail().
print(df[:5])
# sepal_length sepal_width petal_length petal_width species
# 0 5.1 3.5 1.4 0.2 setosa
# 1 4.9 3.0 1.4 0.2 setosa
# 2 4.7 3.2 1.3 0.2 setosa
# 3 4.6 3.1 1.5 0.2 setosa
# 4 5.0 3.6 1.4 0.2 setosa
print(df[-5:])
# sepal_length sepal_width petal_length petal_width species
# 145 6.7 3.0 5.2 2.3 virginica
# 146 6.3 2.5 5.0 1.9 virginica
# 147 6.5 3.0 5.2 2.0 virginica
# 148 6.2 3.4 5.4 2.3 virginica
# 149 5.9 3.0 5.1 1.8 virginica
Obtenir les valeurs de la première/dernière ligne
Si vous spécifiez n=1 dans head() ou tail(), vous pouvez obtenir la première ou la dernière ligne, mais même s’il n’y a qu’une seule ligne, le type est pandas.DataFrame.
print(df.head(1))
# sepal_length sepal_width petal_length petal_width species
# 0 5.1 3.5 1.4 0.2 setosa
print(type(df.head(1)))
# <class 'pandas.core.frame.DataFrame'>
Si vous spécifiez une seule ligne à l’aide d’iloc, vous pouvez obtenir la ligne en tant que pandas.Series. pandas.Series est plus facile d’obtenir la valeur. Vous pouvez obtenir la première ligne avec iloc[0] et la dernière ligne avec iloc[-1].
Si vous voulez obtenir la valeur de l’élément, vous pouvez le faire avec iloc[0][‘column_name’], iloc[-1][‘column_name’].
print(df.iloc[0])
# sepal_length 5.1
# sepal_width 3.5
# petal_length 1.4
# petal_width 0.2
# species setosa
# Name: 0, dtype: object
print(type(df.iloc[0]))
# <class 'pandas.core.series.Series'>
print(df.iloc[0]['sepal_length'])
# 5.1
print(df.iloc[-1])
# sepal_length 5.9
# sepal_width 3
# petal_length 5.1
# petal_width 1.8
# species virginica
# Name: 149, dtype: object
print(type(df.iloc[-1]))
# <class 'pandas.core.series.Series'>
print(df.iloc[-1]['sepal_length'])
# 5.9
Notez qu’une erreur est générée sans .iloc.
# print(df[0])
# KeyError: 0
# print(df[-1])
# KeyError: -1
Pour plus d’informations sur at, iat, loc, iloc et la sélection de lignes et de colonnes en indexant [], consultez l’article suivant.
