Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
agregando en una ventana de 24 horas desplazada

Considere el siguiente ejemplo

 import datetime import pandas as pd df = pd.DataFrame({'var' : np.random.randint(0,10, size = 16993)}, index = pd.date_range('2021-01-01 00:00:00', '2021-03-01 00:00:00', freq ='5 min')) df.head(10) Out[272]: var 2021-01-01 00:00:00 5 2021-01-01 00:05:00 9 2021-01-01 00:10:00 1 2021-01-01 00:15:00 5 2021-01-01 00:20:00 8

Este es un marco de datos clásico con datos intradía. Necesito agregarlo a nivel diario, pero no quiero usar las 24 horas desde las 00:00:00 hasta 23:59:59 que se usarían implícitamente si ejecutara df.groupby(df.index.date)

 df.groupby(df.index.date).agg('sum').head() Out[274]: var 2021-01-01 1440 2021-01-02 1238 2021-01-03 1274 2021-01-04 1277 2021-01-05 1253

Más bien, quiero agregar usando una ventana de 24 horas que comienza a la 1:00:00 todos los días. Así que el primer grupo será entre 2021-01-01 01:00:00 y 2021-02-01 00:59:59 , el segundo entre 2021-02-01 01:00:00 y 2021-03-01 00:59:59 , y así sucesivamente. Los horarios de inicio se pueden identificar fácilmente, como se muestra a continuación.

 df['flag'] = df.index.time == datetime.time(1,0)

¿Cuál es la mejor manera de proceder para crear los grupos? ¡Gracias!

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Resample con offset

El parámetro de compensación es el Timedelta que se puede agregar al origen para crear intervalos de agrupación personalizados

 df.resample('D', offset=pd.Timedelta(hours=1)).sum()

 var 2020-12-31 01:00:00 72 2021-01-01 01:00:00 1278 2021-01-02 01:00:00 1301 2021-01-03 01:00:00 1291 2021-01-04 01:00:00 1346 ....
over 4 years ago · Santiago Trujillo Relatório

0

Puede usar groupby.sum si resta 1H del mero:

 df.groupby((df.index - pd.Timedelta('1H')).date).sum() # var # 2020-12-31 58 # 2021-01-01 1319 # 2021-01-02 1261 # ... ... # 2021-02-26 1286 # 2021-02-27 1246 # 2021-02-28 1240
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda