es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprobando intervalos de minutos utilizando Pandas Datetime en Python

Quiero escribir un trozo de código que verifique si el valor de fecha dado es el primer minuto del mes, como x-x-01T00:00:00Z. Quiero lograr la función bool que se muestra a continuación. ¿Cómo podría modificar el código a continuación para poder hacer eso?

import datetime
import pandas as pd 
import numpy as np

def fechas(date_vals):
    datetime_vals = pd.to_datetime(date_vals)

    for x in datetime_vals:
        # Condición que busca si es el primer día y el minuto del mes
        # El formato de fechas es x-x-01T00:00:00Z

fechas(np.array([‘2015-10-08T13:40:00Z’, ‘2016-01-04T21:00:00Z’, ‘2015-10-01T00:00:00Z’, ‘2015-10-08T00:00:00Z’]))

Salida Esperada:

False
False
True
False
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para comprobar si el valor de fecha dado es el primer minuto del mes, podemos modificar el código de la siguiente manera:

    import pandas as pd 
    import numpy as np
    
    def fechas(fecha_vals):
        datetime = pd.to_datetime(fecha_vals)
        # comprobar si la fecha es el primer día del mes
        primer_dia = datetime.dt.is_month_start
        # comprobar si la hora es 00:00:00
        primer_minuto = datetime.dt.hour == 0 # comprobar la hora
        primer_minuto &= datetime.dt.minute == 0 # comprobar los minutos
        # retornar True solo si se cumplen ambas condiciones
        return np.logical_and(primer_dia, primer_minuto)
    
    fechas(np.array(['2015-10-08T13:40:00Z', '2016-01-04T21:00:00Z', '2015-10-01T00:00:00Z', '2015-10-08T00:00:00Z']))
    

    Salida:

    array([False, False,  True, False])
    

    En el código modificado, utilizamos el atributo is_month_start del índice de fecha y hora de Pandas para comprobar si la fecha es el primer día del mes. Luego utilizamos los atributos hour y minute para comprobar si es el primer minuto del día. Finalmente, utilizamos la función logical_and de NumPy para combinar las dos condiciones y devolver un valor booleano.

Comments are closed.