根据最近的索引组合多个数据帧

时间:2017-09-04 22:30:35

标签: python pandas dataframe merge

我有多个(~5个)数据帧,每个数据帧都有来自给定来源的数据,如下所示:

>>> d.head()
Out[18]: 
                      SOURCE      B1        S1          B2         S2  
Time                                                                                                             
2017-04-03 00:01:00.221  J     1114.73    2000000     1117.47    2000000    
2017-04-03 00:01:02.701  J     1114.10    2000000     1117.47    2000000    
2017-04-03 00:01:02.701  J     1114.10    2000000     1117.44    2000000   
2017-04-03 00:01:02.902  J     1114.80    2000000     1117.44    2000000   
2017-04-03 00:01:08.413  J     1114.76    2000000     1117.44    2000000    

我希望按时将所有这些组合在一起,并在给定时间内获取最大B1和最大B2(来自所有来源)。鉴于时间长达几微秒,我几乎没有完全重叠的行,所以我想基于时间加入彼此给定的宽度(比如说1秒)。我想知道是否有更好的方法来做到这一点,而不是根据最近的索引一次组合2个数据帧:

d1['1 Index'] = d1.index
temp = d1.reindex(d2.index, method='nearest')
df_merge = pd.concat([temp, d2], axis=1)

我必须做5次以上才能创建一个组合的df_merge。但是上述方法可能具有间隔超过1秒的合并,这是不希望的。此外,在每个后续合并中,可以选择合并第二个数据帧的索引。

0 个答案:

没有答案