我有两个数据帧df_sgl
和df_aux.head()
Out[57]:
0
Time
2017-09-05 09:30:00.570 0.0
2017-09-05 09:30:05.234 400.0
2017-09-05 09:30:05.235 200.0
2017-09-05 09:30:05.256 100.0
2017-09-05 09:30:20.585 1795.0
df_sgl.head()
Out[58]:
OBV
Time
2017-09-05 09:30:00.100 NaN
2017-09-05 09:30:00.200 NaN
2017-09-05 09:30:00.300 NaN
2017-09-05 09:30:00.400 NaN
2017-09-05 09:30:00.500 NaN
。后者每100毫秒被索引一次。
df_sgl
我想对索引执行右连接,使df_aux
占优,并且2017-09-05 09:30:00.600 0.0
的每个值都分配给最近但较高的时刻。例如,要替换的第一个值将是
2017-09-05 09:30:05.300 400.0
第二个是
merge_asof
我尝试使用df_aux['groupid'] = df_sgl.index[[ df_sgl.index.searchsorted(t) for t in df_aux.index ]]
df_aux = df_aux.groupby(by=['groupid']).sum()
df_sgl.merge(df_aux, how = 'left', left_index = True, right_index = True)
,但未保留值。
谢谢。
找到了以下解决方案,但我仍然愿意提供一个更简单的解决方案。
{{1}}