快速匹配两个数据帧的方法

2024-04-25 03:48:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,每一个都有几个列,但都有相同的列“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万行的数据帧来说,速度相当慢


Tags: 数据datawith时间条件temptimestampask