"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo unir Dataframes basados ​​en rangos de marca de tiempo?

¿Cómo unir Dataframes basados ​​en rangos de marca de tiempo?

Publicado el 2025-03-22
Navegar:838

How to Join DataFrames Based on Timestamp Ranges?

uniendo los marcos de datos basados ​​en rangos de valor de columna

en el contexto dado, tenemos dos marcos de datos, df_1 y df_2, donde necesitamos fusionarlos de que la columna de la campaña de tiempo en df_1 cae dentro de las columnas de inicio y final df_2.

Un enfoque para lograr esto es crear un índice de intervalo a partir de las columnas de inicio y finalización en DF_2. Luego podemos usar el método get_loc para obtener el evento correspondiente para cada marca de tiempo en DF_1. Aquí está el código Python para esta solución:

# Create interval index from df_2
df_2.index = pd.IntervalIndex.from_arrays(df_2['start'], df_2['end'], closed='both')

# Get corresponding event for each timestamp in df_1
df_1['event'] = df_1['timestamp'].apply(lambda x: df_2.iloc[df_2.index.get_loc(x)]['event'])

Esto creará una nueva columna nombrada en DF_1, que contiene los eventos correspondientes para cada Timestaming que cae dentro de las cesas especificadas en DF_2. La marca de datos unidas unidas resultantes contendrá las siguientes columnas:

timestamp         A         B event

La salida se verá similar a:

            timestamp         A         B event
0 2016-05-14 10:54:33  0.020228  0.026572    E1
1 2016-05-14 10:54:34  0.057780  0.175499    E2
2 2016-05-14 10:54:35  0.098808  0.620986    E2
3 2016-05-14 10:54:36  0.158789  1.014819    E2
4 2016-05-14 10:54:39  0.038129  2.384590    E3
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3