请帮助我减少Python中嵌套循环的时间复杂度。
df是一个数据框,有三列,比如eg的名称、城市和日期 rep data frame的平均值/平均值基于df的2列名称和城市。我需要把平均值从rep重新连接到df
for i in range(0,len(rep)): for j in range(k,len(df)): if df["X"][j] == rep["X"][i]: df["Mean"][j] = rep["Mean"][i] else: k=j break
你想要的是:
df.set_index('X').join(rep.set_index('X'))
将正在进行联接的键设置为索引将使进程更快。完成连接后,可以过滤旧的平均值(使用 drop 数据帧方法),以及不需要的值
drop