python - 如何快速有效地加入基于多个条件的两个大数据框?
问题描述
考虑到以下条件,我需要将 df1 列的 ['inicio_vigencia'] 和 ['fim_vigencia'] 添加到 df2:
- df1['id_vei'] == df2['id_vei'] 和
- df1['inicio_vigencia'] <= df2['Hora_do_evento'] 和
- df1['Hora_do_evento'] >= df2['Hora_do_evento']
数据框大小: - df1 有 25.196.167 行(大约 2gb)
- df2 有 113.787 行
我准备了以下脚本,但这需要很多时间。
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
我怎样才能有效地执行这项任务?
解决方案
推荐阅读
- javascript - Webscraper 函数返回未定义
- css - 错误字段未以 django 形式正确显示
- javascript - 如果我检查值的长度(文本字段),javascript 输出不显示
- javascript - 是否可以在 Javascript 中使用 HTML Helpers?
- regex - Python Regex 排除 / 之后的字母匹配
- python - 在 sci-kit learn 中使用分类预测变量
- javascript - webpack:字符串中的逗号导致捆绑期间的语法错误
- python - python web应用程序,无需单独服务器即可触发异步功能
- javascript - 本地存储的 JWT 安全性
- javascript - 如何从 JavaScript 执行 Kotlin WebAssembly 函数?