我有两个熊猫数据帧。一个是testdata,另一个是refdata。两个数据帧都有一个名为“timestamp”的列。像这样:
timestamp
197888.000,
197888.100,
197888.200,
197888.300,
197888.400,
...
我想从refdata中为测试数据的每一行找到合适的引用数据索引。我使用“apply”方法。你知道吗
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\u数据应该是两个项目。你知道吗
我遇到的问题是这个算法非常慢,大约1300ns。如果测试数据足够大,多达百万行,那么算法就相当糟糕。你知道吗
我想知道是否有其他方法可以让这更快。非常感谢你。你知道吗
-斯特凡
目前没有回答
相关问题 更多 >
编程相关推荐