我有两个数据帧,每一个都有几个列,但都有相同的列“timestamp”(每个数据帧中的时间戳不同)。我想连接它们,条件是DataFrame1中具有特定时间戳的行将与DataFrame2中最大时间戳小于或等于DataFrame1行中时间戳的行连接。我想做得比这更快:
df1['ask'], df1['bid'] = zip(*df1['timestamp'].apply(mm.join_with_data, args=(df2,)))
在哪里
def join_with_data(df1, df2):
temp = df2[df2.timestamp == max(df2.timestamp[df2.timestamp <= df1])]
return temp.values[0][0], temp.values[0][1]
有没有可能用更复杂的方法来做呢?对于超过10万行的数据帧来说,速度相当慢
像merge_asof这样的东西能解决你的问题吗
相关问题 更多 >
编程相关推荐