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

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

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/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!