Contenido de este artículo
- 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/
¿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: