首页 > 解决方案 > 如何快速有效地加入基于多个条件的两个大数据框?

问题描述

考虑到以下条件,我需要将 df1 列的 ['inicio_vigencia'] 和 ['fim_vigencia'] 添加到 df2:

df1 df2结果

我准备了以下脚本,但这需要很多时间。

df2['inicio_vigencia'] = 0
df2['fim_vigencia'] = 0

for i in range(len(df2)):
    id_vei = (df2.iloc[i, 1])
    Hora_do_evento = (df2.iloc[i, 3])
    df_vigencia = df1.loc[(df1['inicio_vigencia'] <= Hora_do_evento) &
                                                 (df1['fim_vigencia'] >= Hora_do_evento) &
                                                 (df1['id_vei'] == id_vei)]
    if (len(df_vigencia) > 0):
        index = int(df_vigencia[df_vigencia['id_vei'] == id_vei].index.values)
        #len_df_vigencia.append(len(df_vigencia))
        inicio_vigencia = df_vigencia['inicio_vigencia'][index]
        fim_vigencia = df_vigencia['fim_vigencia'][index]
        df2.loc[i, 'inicio_vigencia'] = inicio_vigencia
        df2.loc[i, 'fim_vigencia'] = fim_vigencia  

我怎样才能有效地执行这项任务?

标签: pythonpandasdataframejoin

解决方案


推荐阅读