熊猫应用加速建议

时间:2017-06-28 15:55:47

标签: python pandas

我有两个带有时间戳的数据帧,需要在最接近的时间值上进行匹配。我的代码目前和我知道如何构建它一样高效。

def Matcher(value,frame2):
    frame2['diff'] = frame2['TIME'].apply(lambda row: abs(row - value))
    return frame2['diff'].argmin()

frame1['dex'] = frame1['TIME'].apply(lambda row: Matcher(row,frame2)
frame2['dex'] = frame2.index
frame = pd.merge(frame1,frame2,on='dex')

基本上,匹配器函数查找unix时间戳的最接近绝对时间值的索引。然后合并DataFrame。对于较小的数据帧,这是可以的,因为现在数据帧是> 30,000行代码运行时间太长。与155642帧2匹配的31122长帧1运行大约需要45分钟。任何建议都将不胜感激。

___________编辑____________________

以下是数据的一个例子。它没有提供下面评论中解释的实例,因为这很难找到。

print frame1.head(10)
             TIME ONE
1   1498074088.26  fb
2   1498074088.28  fb
3   1498074088.30  fb
4   1498074088.32  fb
5   1498074088.34  fb
6   1498074088.36  fb
7   1498074088.38  fb
8   1498074088.40  fb
9   1498074088.42  fb
10  1498074088.44  fb


print frame2.head(10)
             TIME ONE
1   1498074088.28  20
2   1498074088.38  01
3   1498074088.48  2a
4   1498074088.58  9e
5   1498074088.68  8c
6   1498074088.78  76
7   1498074088.88  46
8   1498074088.98  51
9   1498074089.07  bd
10  1498074089.17  34

0 个答案:

没有答案