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

Actualizado por ultima vez el 7 de mayo de 2021, por .

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/

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!