
Per controllare i dati di pandas.DataFrame e pandas.Series con molte righe, sono utili i metodi head() e tail() che restituiscono la prima e l’ultima n righe.
In questo articolo vengono descritti i seguenti contenuti.
- Ottieni le prime n righe di DataFrame:
head() - Ottieni le ultime n righe di DataFrame:
tail() - Ottieni righe specificando i numeri di riga: slice
- Ottieni i valori della prima/ultima riga
Nota che un altro metodo che puoi utilizzare per controllare pandas.DataFrame e pandas.Series di grandi dimensioni è sample() per il campionamento casuale.
Ad esempio, utilizzare il set di dati dell’iride incluso come campione in Seaborn.
import pandas as pd
import seaborn as sns
df = sns.load_dataset("iris")
print(df.shape)
# (150, 5)
L’esempio seguente è per pandas.DataFrame, ma pandas.Series ha anche head() e tail(). L’utilizzo è lo stesso per entrambi.
Ottieni le prime n righe di DataFrame:head()
Il metodo head() restituisce le prime n righe.
Per impostazione predefinita, vengono restituite le prime 5 righe.
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
È possibile specificare il numero di righe.
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
Ottieni le ultime n righe di DataFrame:tail()
Il metodo tail() fornisce le ultime n righe.
Per impostazione predefinita, vengono restituite le ultime 5 righe.
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
È possibile specificare il numero di righe.
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
Ottieni righe specificando i numeri di riga: slice
È anche possibile ottenere righe usando 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
Puoi usare le fette per fare la stessa cosa di head() e 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
Ottieni i valori della prima/ultima riga
Se specifichi n=1 in head() o tail(), puoi ottenere la prima o l’ultima riga, ma anche se solo una riga, il tipo è 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'>
Se specifichi solo una riga usando iloc, puoi ottenere la riga come pandas.Series. pandas.Series è più facile ottenere il valore. Puoi ottenere la prima riga con iloc[0] e l’ultima riga con iloc[-1].
Se vuoi ottenere il valore dell’elemento, puoi farlo con 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
Si noti che viene generato un errore senza .iloc.
# print(df[0])
# KeyError: 0
# print(df[-1])
# KeyError: -1
Per ulteriori informazioni su at, iat, loc, iloc e sulla selezione di righe e colonne via l’indicizzazione [], vedere l’articolo seguente.
