Saltar al contenido

¿Existe una función de Python para determinar en qué trimestre del año se encuentra una fecha?

Emanuel, miembro de nuestro equipo de trabajo, nos hizo el favor de redactar este enunciado ya que conoce muy bien el tema.

Solución:

Dada una instancia x de fechahora.fecha, (x.month-1)//3 le dará el trimestre (0 para el primer trimestre, 1 para el segundo trimestre, etc., agregue 1 si necesita contar desde 1;-).


Originalmente, dos respuestas, varias veces votadas e incluso aceptadas originalmente (ambas eliminadas actualmente), tenían errores: no hacían lo mismo -1 antes de la división, y dividiendo por 4 en lugar de 3. Como .month va del 1 al 12, es fácil comprobar por sí mismo qué fórmula es la correcta:

for m in range(1, 13):
  print m//4 + 1,
print

da 1 1 1 2 2 2 2 3 3 3 3 4 — dos trimestres de cuatro meses y uno de un solo mes (eep).

for m in range(1, 13):
  print (m-1)//3 + 1,
print

da 1 1 1 2 2 2 3 3 3 4 4 4 — ahora, ¿no te parece esto mucho más preferible?-)

Esto prueba que la pregunta está bien justificada, creo;-).

No creo que el módulo de fecha y hora deba tener necesariamente todas las funciones de calendario útiles posibles, pero sé que mantengo un (bien probado;-) datetools módulo para el uso de mis proyectos (y los de otros) en el trabajo, que tiene muchas funciones pequeñas para realizar todos estos cálculos calendáricos, algunos son complejos, algunos simples, pero no hay razón para hacer el trabajo una y otra vez (incluso simples trabajo) o correr el riesgo de errores en dichos cálculos;-).

SI ya estás usando pandases bastante simple.

import datetime as dt
import pandas as pd

quarter = pd.Timestamp(dt.date(2016, 2, 29)).quarter
assert quarter == 1

Si tienes un date columna en un marco de datos, puede crear fácilmente una nueva quarter columna:

df['quarter'] = df['date'].dt.quarter

Sugeriría otra solución posiblemente más limpia. Si X es un datetime.datetime.now() ejemplo, entonces el trimestre es:

import math
Q=math.ceil(X.month/3.)

ceil debe importarse desde el módulo matemático, ya que no se puede acceder directamente.

Eres capaz de añadir valor a nuestra información participando con tu experiencia en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *