Función Pandas df.tail()
tail()Es una función importante en Pandas DataFrame y Series, utilizada para ver la parte final del conjunto de datos. Devuelve las últimas n filas de datos, lo que permite comprender rápidamente el final de los datos y los registros más recientes sin recorrer todo el conjunto de datos.
En el análisis de datos de series temporales,tail()es especialmente útil, porque normalmente nos interesan los datos más recientes, como los últimos precios de acciones, ventas o lecturas de sensores. Esta función yhead()se complementan mutuamente y juntos constituyen una herramienta básica para la exploración de datos.
Sintaxis básica y parámetros
tail()es una función miembro de DataFrame y Series, a través del operador de punto.se invoca. Esta función yhead()tienen exactamente la misma forma de uso, solo que la dirección de visualización es opuesta.
Formato de sintaxis
DataFrame.tail(n=5) Series.tail(n=5)
Descripción de parámetros
| Parámetro | Tipo | ¿Es obligatorio? | Descripción | Valor predeterminado |
|---|---|---|---|---|
| n | int | Opcional | Devuelve las últimas n filas de datos. Si n es mayor que el número total de filas, devuelve todos los datos. | 5 |
Descripción del valor de retorno
- Tipo de valor de retorno: Cuando el llamador es un DataFrame, devuelve un DataFrame; cuando el llamador es una Series, devuelve una Series.
- Número de filas devueltas: Devuelve como máximo n filas; si el número de filas de datos es menor que n, devuelve todos los datos.
- Preservación del índice: Los datos devueltos conservan los valores de índice del DataFrame original.
Ejemplos
Vamos a dominar completamente mediante ejemplostail()el uso de.
Ejemplo 1: Uso básico - Ver las últimas filas de un DataFrame
Crear un DataFrame y usartail()ver los datos finales.
Ejemplo
# Crear un DataFrame de ejemplo
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry', 'Iris', 'Jack'],
'age': [18, 19, 17, 18, 20, 19, 18, 17, 19, 18],
'score': [85, 92, 78, 90, 88, 95, 82, 76, 89, 91],
'grade': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'C', 'B', 'A']
}
df = pd.DataFrame(data)
# Devuelve las últimas 5 filas por defecto
print("Últimas 5 filas por defecto:")
print(df.tail())
# Especificar devolver las últimas 3 filas
print("nÚltimas 3 filas:")
print(df.tail(3))
# Devuelve las últimas 7 filas
print("nÚltimas 7 filas:")
print(df.tail(7))
Resultado de la ejecución:
默认最后 5 行:
name age score grade
5 Frank 19 95 A
6 Grace 18 82 B
7 Henry 17 76 C
8 Iris 19 89 B
9 Jack 18 91 A
最后 3 行:
name age score grade
7 Henry 17 76 C
8 Iris 19 89 B
9 Jack 18 91 A
最后 7 行:
name age score grade
3 David 18 90 A
4 Eve 20 88 B
5 Frank 19 95 A
6 Grace 18 82 B
7 Henry 17 76 C
8 Iris 19 89 B
9 Jack 18 91 A
Análisis del código:
- El DataFrame tiene 10 filas de datos, con índices de 0 a 9.
df.tail()Devuelve las últimas 5 filas con índices del 5 al 9.df.tail(3)Solo devuelve las últimas 3 filas, con índices 7, 8, 9.- Nótese que los valores de índice conservan el índice del DataFrame original, no se renumera desde 0.
Ejemplo 2: Ver las últimas filas de una Series
tail()También se aplica a objetos Series.
Ejemplo
# Crear una Series
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
# Ver los últimos 3 elementos
print("Últimos 3 elementos:")
print(s.tail(3))
# Crear una Series con índice
s2 = pd.Series([100, 200, 300, 400, 500], index=['a', 'b', 'c', 'd', 'e'])
print("nLos últimos 2 elementos de la Series con índice:")
print(s2.tail(2))
Resultado de la ejecución:
最后 3 个元素: 7 80 8 90 9 100 dtype: int64 带索引 Series 的最后 2 个元素: d 500 e 600 dtype: int64
Análisis del código:
- El método de Series
tail()devuelve los últimos n elementos, conservando el índice original. - Las Series con índice personalizado también son aplicables, devolviendo los elementos correspondientes al final.
Ejemplo 3: Aplicación en datos de series temporales
Al trabajar con datos de series temporales,tail()es especialmente útil, ya que permite ver rápidamente los registros de datos más recientes.
Ejemplo
import numpy as np
# Crear un DataFrame de series temporales, simulando datos de acciones
np.random.seed(42)
dates = pd.date_range('2024-01-01', periods=30, freq='D')
prices = 100 + np.cumsum(np.random.randn(30)) # Simular la tendencia del precio de las acciones
stock_df = pd.DataFrame({
'date': dates,
'price': prices.round(2),
'volume': np.random.randint(1000, 10000, 30)
})
print("Comparación de las primeras y últimas filas de los datos completos:")
print("nPrimeras 5 filas:")
print(stock_df.head())
print("nÚltimas 5 filas:")
print(stock_df.tail())
# Usar tail para ver los datos de los últimos días
latest_data = stock_df.tail(7)
print("nDatos de los últimos 7 días:")
print(latest_data)
# Se puede realizar un análisis adicional sobre el resultado de tail
print("nPrecio promedio de los últimos 7 días:", latest_data['price'].mean())
print("Volumen total de transacciones de los últimos 7 días:", latest_data['volume'].sum())
Resultado de la ejecución:
完整数据的前几行和后几行对比:
前 5 行:
date price volume
0 2024-01-01 100.34 5234
1 2024-01-02 99.87 3421
2 2024-01-03 100.21 6789
3 2024-01-04 98.45 4321
4 2024-聚合-05 99.12 5654
最后 5 行:
date price volume
25 2024-01-26 102.45 4321
26 2024-01-27 103.12 5678
27 2024-01-28 101.89 6543
28 2024-01-29 104.23 3211
29 2024-01-30 103.87 4532
最近 7 天的数据:
date price volume
23 2024-01-24 101.56 4321
24 2024-01-25 102.01 5432
25 2024-01-26 <td> 45 4321
26 2024-01-27 103.12 5678
27 2024-01-28 101.89 6543
28 2024-01-29 104.23 3211
29 2024-01-30 103.87 4532
最近 7 天的平均价格: 102.79
最近 7 天的总成交量: 34938
Análisis del código:
- Se creó un DataFrame con 30 días de datos de precios de acciones.
tail()Se localizan rápidamente los registros de datos más recientes.- Sobre
tail()Con los datos devueltos se pueden seguir invocando otras funciones para realizar análisis y cálculos. - Este patrón es muy útil en escenarios de análisis de datos en tiempo real.
Notas
tail()No modifica el DataFrame o Series original, devuelve un nuevo objeto.- Cuando n es menor o igual a 0, devuelve un DataFrame vacío o una Series vacía.
- Para conjuntos de datos grandes,
tail()es más eficiente que cargar todos los datos, porque no necesita leer el archivo completo. tail()yhead()A menudo se usan juntos para comprender completamente ambos extremos de los datos.
Consejo: en la etapa de exploración del análisis de datos, se recomienda usar también
head()ytail(), de esta manera se puede determinar rápidamente si los datos están ordenados según lo esperado, así como la integridad de los datos.
Resumen
tail()es una función en Pandas para ver la parte final de los datos, junto conhead()se complementan mutuamente. Es especialmente útil en escenarios como análisis de series temporales, monitoreo de datos en tiempo real, análisis de registros (logs), etc.
Dominarhead()ytail()estas dos funciones, permite comprender rápidamente el principio y el final del conjunto de datos, lo cual es un primer paso muy importante en la etapa de exploración de datos. Combinado coninfo()ydescribe()funciones como estas, podemos comprender plenamente las características y la distribución de los datos.
Funciones comunes de Pandas