按最近但较低的索引合并两个数据框

时间:2018-10-06 04:02:45

标签: pandas

我有两个数据帧df_sgldf_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}}

0 个答案:

没有答案