【发布时间】:2019-02-23 14:34:26
【问题描述】:
我有两个 DataFrame,每个 DataFrame 都有几列,但具有相同的列“时间戳”(每个 DataFrame 中的时间戳不同)。我想加入它们,条件是 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]
是否有可能以更复杂的方式做到这一点?对于超过 100k 行的 DataFrame,速度非常慢。
【问题讨论】:
标签: python pandas algorithm dataframe join