如何使此数据框查找操作更快?

时间:2019-10-06 14:02:41

标签: python pandas numpy dataframe

我在熊猫中有两个数据框。一个是testdata,另一个是refdata。两个数据框都有一个名为“时间戳”的列。像这样:

timestamp
197888.000,
197888.100,
197888.200,
197888.300,
197888.400,
...

我想从refdata中为测试数据的每一行找到正确的参考数据索引。我为此使用“应用”方法。

index = testdata.apply(lambda x: locate_refindex(x.timestamp, refdata, threshold), axis=1) 

在locate_refindex函数中,最关键的算法是以下语句:

def locate_refindex(timestamp, refdata, threshold):
    ...
    slice_data = refdata[abs(refdata['timestamp'] - timestamp) <= threshold]
    ...

查找与测试数据最近的refdata行。例如,如果我的testdata行的时间戳为197888.100,阈值为0.099,则slice_data应该为两项。

我遇到的问题是该算法非常慢,大约1300ns。如果测试数据足够大以至于多达一百万行,那么该算法就很糟糕。

我想知道是否还有其他方法可以使此过程更快。非常感谢。

-Stefan

0 个答案:

没有答案
相关问题