Cómo ordenar un DataFrame de Pandas por fecha (con ejemplos)

A menudo, es posible que desee ordenar un DataFrame de pandas por una columna que contenga fechas. Afortunadamente, esto es fácil de hacer usando la función sort_values ​​() .

Este tutorial muestra varios ejemplos de cómo utilizar esta función en la práctica.

Ejemplo 1: Ordenar por columna de fecha

Supongamos que tenemos el siguiente DataFrame de pandas:

importar pandas como pd

#create DataFrame
df = pd.DataFrame ({'ventas': [4, 11, 13, 9],
                   'clientes': [2, 6, 9, 7],
                   'fecha': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']})

#view Impresión de DataFrame
 (df)

   fecha de clientes de ventas
0 4 2 2020-01-25
1 11 6 2020-01-18
2 13 9 2020-01-22
3 9 7 2020-01-21

Primero, necesitamos usar la función to_datetime () para convertir la columna ‘fecha’ en un objeto de fecha y hora:

df [' fecha '] = pd. to_datetime (df ​​[' fecha '])

A continuación, podemos ordenar el DataFrame según la columna ‘fecha’ usando la función sort_values ​​() :

df. sort_values (por = ' fecha ')

        fecha de clientes de ventas
1 11 6 2020-01-18
3 9 7 2020-01-21
2 13 9 2020-01-22
0 4 2 2020-01-25

De forma predeterminada, esta función ordena las fechas en orden ascendente. Sin embargo, puede especificar ascendente = Falso para ordenar en orden descendente:

df. sort_values (por = ' fecha ', ascendente = Falso )

	fecha de clientes de ventas
0 4 2 2020-01-25
2 13 9 2020-01-22
3 9 7 2020-01-21
1 11 6 2020-01-18

Ejemplo 2: ordenar por varias columnas de fecha

Supongamos que tenemos el siguiente DataFrame de pandas:

importar pandas como pd

#create DataFrame
df = pd.DataFrame ({'persona': ['A', 'B', 'C', 'D'],
                   'order_date': ['2020-01-15', '2020-01-15', '2020-01-20', '2020-01-20'],
                   'fecha_recibida': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']})

#view Impresión de DataFrame
 (df)

  persona orden_fecha_recibir_fecha
0 A 2020-01-15 2020-01-25
1 B 2020-01-15 2020-01-18
2 C 2020-01-20 2020-01-22
3 D 2020-01-20 2020-01-21

Podemos usar la función sort_values para ordenar el DataFrame por múltiples columnas simplemente proporcionando múltiples nombres de columna a la función:

#convertir ambas columnas de fecha en objetos de fecha y hora 
df [['order_date', 'receive_date']] = df [['order_date', 'receive_date']]. aplicar (pd. to_datetime )

#ordenar DateFrame por order_date, luego por Receive_date
df. sort_values (por = ['order_date', 'receive_date'])

        persona orden_fecha_recibir_fecha
1 B 2020-01-15 2020-01-18
0 A 2020-01-15 2020-01-25
3 D 2020-01-20 2020-01-21
2 C 2020-01-20 2020-01-22

El DataFrame ahora se clasifica en orden ascendente por order_date, luego en orden ascendente por Receive_date.

Recursos adicionales

Cómo filtrar filas de marcos de datos de Pandas por fecha
Cómo convertir fecha y hora en fecha en Pandas
Cómo convertir columnas a fecha y hora en Pandas
Cómo ordenar por índice y columna en Pandas

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Una tabla dinámica es un tipo de tabla que resume un conjunto de datos utilizando estadísticas de resumen. Podemos crear…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!