对齐没有共同索引的pandas DataFrame

时间:2016-09-13 17:39:16

标签: python pandas indexing dataframe

我有DataFrames代表来自两个不同传感器的数据:

In[0]: df0
Out[0]:
   time  foo  
0   0.1  123  
1   1.0  234  
2   2.1  345
3   3.1  456  
4   3.9  567  
5   5.1  678  

In[0]: df1
Out[0]:
   time  bar  
0  -0.9  876  
1  -0.1  765  
2   0.7  654  
3   2.1  543  
4   3.0  432  

传感器为他们正在监控的每个事件提供度量(foobar)和时间戳(time)。有几点需要注意:

  1. 时间戳接近但不相同
  2. 收集数据的范围在传感器之间是不同的(即它们是独立开启和关闭的)
  3. 我尝试调整df0df1以获取以下内容:

    In[3]: df3
    Out[3]:
       time_df0  foo  time_df1  bar  
    0       nan  nan       -0.9  876
    1       0.1  123       -0.1  765
    2       1.0  234        0.7  654
    3       2.1  345        2.1  543
    4       3.1  456        3.0  432
    5       3.9  567        nan  nan
    6       5.1  678        nan  nan
    

1 个答案:

答案 0 :(得分:1)

@Kartik posted a perfect links开头......

这是一个起点:

df0.set_index('time', inplace=True)
df1.set_index('time', inplace=True)

In [36]: df1.reindex(df0.index, method='nearest').join(df0)
Out[36]:
      bar  foo
time
0.1   765  123
1.0   654  234
2.1   543  345
3.1   432  456
3.9   432  567
5.1   432  678