Cómo filtrar filas de marcos de datos de Pandas por fecha

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

Actualizado el 17 de julio de 2024, por Luis Benites.

A menudo, es posible que desee filtrar las filas de un DataFrame de pandas por fechas. Afortunadamente, esto es bastante fácil de hacer y este tutorial explica dos formas de hacerlo, dependiendo de la estructura de su DataFrame.

Ejemplo 1: Filtrar por fecha utilizando el índice

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]},
                   index = ['2020-01-15', '2020-01-18', '2020-01-22', '2020-01-24'])

#view  
Impresión de DataFrame (df)

                clientes de ventas
2020-01-15 4 2
2020-01-18 11 6
2020-01-22 13 9
2020-01-24 9 7

Dado que las fechas están en el índice del DataFrame, simplemente podemos usar la función .loc para filtrar las filas según un rango de fechas:

#filtro para filas donde la fecha está entre el 15 de enero y el 22 de enero 
df. loc ['2020-01-15': '2020-01-22']

                clientes de ventas
2020-01-15 4 2
2020-01-18 11 6
2020-01-22 13 9

Tenga en cuenta que cuando filtramos las filas usando df.loc [inicio: final], las fechas de inicio y finalización se incluyen en la salida.

Ejemplo 2: Filtrar por fecha usando una columna

Supongamos que tenemos el siguiente DataFrame de pandas:

importar pandas como pd

#create DataFrame
df = pd.DataFrame ({'ventas': [4, 11, 13, 9],
                   'día': ['2020-01-15', '2020-01-18', '2020-01-22', '2020-01-24']})

#view  
Impresión de DataFrame (df)

        dia de ventas
0 4 2020-01-15
1 11 2020-01-18
2 13 2020-01-22
3 9 2020-01-24

Dado que las fechas están en una de las columnas del DataFrame, podemos usar operadores booleanos para filtrar las filas según un rango de fechas:

#filtro para filas donde la fecha es posterior al 15 de enero y anterior al 23 de enero  
df [(df [' day ']> '2020-01-15') & (df ​​[' day '] <'2020-01-23')]

        dia de ventas
1 11 2020-01-18
2 13 2020-01-22

Tenga en cuenta que podemos usar una sintaxis similar para filtrar las filas en función de fechas fuera de algún rango:

#filtro para filas donde la fecha es anterior al 20 de enero o posterior al 22 de enero  
df [(df [' día '] <'2020-01-20') | (df ​​[' día ']> '2020-01-22')]


        dia de ventas
0 4 2020-01-15
1 11 2020-01-18
3 9 2020-01-24

Recursos adicionales

Cómo filtrar un marco de datos de Pandas en múltiples condiciones
Cómo convertir fecha y hora a fecha en Pandas
Cómo encontrar valores únicos en múltiples columnas 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

El error porcentual absoluto medio simétrico (SMAPE) se utiliza para medir la precisión predictiva de los modelos. Se calcula como:…
statologos comunidad-2

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

You have Successfully Subscribed!