Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

144
Vistas
Cómo agregar un marco de datos en una fila

Dados dos marcos df_1 y df_2 , cómo agregar valores de df_2 en filas de df_1 de modo que la date en df_1 esté entre open y close en df_2

 print df_1 date AB 0 2021-11-01 0.020228 0.026572 1 2021-11-02 0.057780 0.175499 2 2021-11-03 0.098808 0.620986 3 2021-11-04 0.158789 1.014819 4 2021-11-05 0.038129 2.384590 print df_2 open close location division size 0 2021-11-07 2021-11-14 LDN Alpha 120 1 2021-11-01 2021-11-14 PRS Alpha 450 2 2021-10-14 2021-11-27 HK Beta 340

Probé esta solución para unir mis marcos de datos, ahora necesito encontrar una manera de agregar. Lo que hice hasta ahora es:

 df_2.index = pd.IntervalIndex.from_arrays(df_2['open'],df_2['close'],closed='both') df_1['events'] = df_1['date'].apply(lambda x : df_2.iloc[df_2.index.get_loc(x)]) print(calls['code'].iloc[0].groupby(['location', 'division'])['size'].sum()) location division LDN Alpha 421.0 LDN Beta 515.0 NY Alpha 369.0 PRQ Alpha 132.0 Gamma 110.0

Necesito algo que se parezca a esto:

 date AB LDN_Alpha LDN_Beta LDN_Gamma PRS_Alpha ... 0 2021-11-01 0.020228 0.026572 120 300 0 530 1 2021-11-02 0.057780 0.175499 ... 2 2021-11-03 0.098808 0.620986 3 2021-11-04 0.158789 1.014819 4 2021-11-05 0.038129 2.384590

Donde las columnas creadas son la suma del size agrupado por location y division

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La idea es primero repetir el rango de fechas open y close columnas, agregar columnas originales de df_2 y luego usar DataFrame.pivot_table con DataFrame.join :

 df_1['date'] = pd.to_datetime(df_1['date']) s=pd.concat([pd.Series(r.Index,pd.date_range(r.open, r.close)) for r in df_2.itertuples()]) df = df_2.join(pd.Series(s.index, s).rename('date')) df = df.pivot_table(index='date', columns=['location', 'division'], values='size', aggfunc='sum', fill_value=0) df.columns = df.columns.map(lambda x: f'{x[0]}_{x[1]}') df = df_1.join(df, on='date') print (df) date AB HK_Beta LDN_Alpha PRS_Alpha 0 2021-11-01 0.020228 0.026572 340 0 450 1 2021-11-02 0.057780 0.175499 340 0 450 2 2021-11-03 0.098808 0.620986 340 0 450 3 2021-11-04 0.158789 1.014819 340 0 450 4 2021-11-05 0.038129 2.384590 340 0 450
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda