una segundo raiz raices para grado general escribir ecuaciones ecuacion cuadratica cuadrada como algoritmo python date

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



raices de una ecuacion cuadratica python (8)

Aquí hay una solución detallada, pero también legible, que funcionará para instancias de fecha y hora

def get_quarter(date): for months, quarter in [ ([1, 2, 3], 1), ([4, 5, 6], 2), ([7, 8, 9], 3), ([10, 11, 12], 4) ]: if date.month in months: return quarter

Claro que podría escribir esto yo mismo, pero antes de reinventar la rueda ¿hay alguna función que ya lo haga?


Esta es una vieja pregunta pero aún digna de discusión.

Aquí está mi solución, usando el excelente módulo dateutil .

from dateutil import rrule,relativedelta year = this_date.year quarters = rrule.rrule(rrule.MONTHLY, bymonth=(1,4,7,10), bysetpos=-1, dtstart=datetime.datetime(year,1,1), count=8) first_day = quarters.before(this_date) last_day = (quarters.after(this_date) -relativedelta.relativedelta(days=1)

Entonces first_day es el primer día del trimestre, y last_day es el último día del trimestre (calculado al encontrar el primer día del próximo trimestre, menos un día).


Para cualquiera que intente obtener el trimestre del año fiscal , que puede diferir del año calendario , escribí un módulo de Python para hacer justamente esto.

La instalación es simple. Solo corre:

$ pip install fiscalyear

No hay dependencias, y fiscalyear debería funcionar tanto para Python 2 como para 3.

Básicamente es una envoltura alrededor del módulo de datetime y datetime incorporado, por lo que cualquier comando de datetime y datetime que ya esté familiarizado funcionará. Aquí hay una demostración:

>>> from fiscalyear import * >>> a = FiscalDate.today() >>> a FiscalDate(2017, 5, 6) >>> a.fiscal_year 2017 >>> a.quarter 3 >>> b = FiscalYear(2017) >>> b.start FiscalDateTime(2016, 10, 1, 0, 0) >>> b.end FiscalDateTime(2017, 9, 30, 23, 59, 59) >>> b.q3 FiscalQuarter(2017, 3) >>> b.q3.start FiscalDateTime(2017, 4, 1, 0, 0) >>> b.q3.end FiscalDateTime(2017, 6, 30, 23, 59, 59)

fiscalyear está alojado en GitHub y PyPI . La documentación se puede encontrar en Leer los documentos . Si está buscando funciones que actualmente no tiene, ¡hágamelo saber!


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

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

ceil tiene que ser importado del módulo matemático ya que no se puede acceder directamente.


hmmm para que los cálculos puedan salir mal, aquí hay una versión mejor (solo por el hecho)

first, second, third, fourth=1,2,3,4# you can make strings if you wish :) quarterMap = {} quarterMap.update(dict(zip((1,2,3),(first,)*3))) quarterMap.update(dict(zip((4,5,6),(second,)*3))) quarterMap.update(dict(zip((7,8,9),(third,)*3))) quarterMap.update(dict(zip((10,11,12),(fourth,)*3))) print quarterMap[6]


si m es el número de mes ...

import math math.ceil(float(m) / 3)


SI ya estás usando pandas , es bastante simple.

import datetime as dt import pandas as pd quarter = pd.Timestamp(dt.date(2016, 2, 29)).quarter assert quarter == 1

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

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


Dada una instancia x de datetime.date , (x.month-1)//3 le dará el trimestre (0 para el primer trimestre, 1 para el segundo trimestre, etc. - agregue 1 si necesita contar de 1 en su lugar; - )

Originalmente dos respuestas, multiplicadas por votos ascendentes e incluso aceptadas originalmente (ambas actualmente eliminadas), tenían errores: no hacer el -1 antes de la división, y dividir por 4 en vez de 3. Como el .month va de 1 a 12, es fácil verificar si usted 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 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 esto no te parece mucho mejor que tú? -)

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

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