2016-11-26 52 views
0

我有一个值蟒大熊猫 - 使用时间戳来从另一个数据帧

entry_time=2000-01-03 00:00:00 

检索数据我有2个dataframes:

timestamp    price         
2000-01-03 00:00:00  25 
2000-01-03 00:30:00  -10 
2000-01-03 01:00:00  100 
2000-01-03 01:30:00  -690 
2000-01-03 02:00:00  650 
2000-01-03 02:30:00  320 
2000-01-03 03:00:00  150 
2000-01-03 03:30:00  160 

,第二个 “DATA2”(下):

我想执行以下操作:对于每一行,计算entry_time和exit_time之间的最大值
exit_time    answer  max 
2000-01-03 01:00:00  true  100 
2000-01-03 01:30:00  true  100 
2000-01-03 02:00:00  true  650 
2000-01-03 02:30:00  false  650 
2000-01-03 03:00:00  true  650 

要做到这一点,我需要在每个时间戳从数据检索值数据2使用它。我尝试了许多这样的公式的变体,但它让我无处可寻。

data2['max']= data[entry_time:data[data2.index.values]].price.max() 

谢谢!

回答

1

好像你需要cummax()

data2.set_index('exit_time', inplace=True)  
data2['max'] = data[data.timestamp >= entry_time].set_index('timestamp').price.cummax() 

data2 
#      answer max 
#   exit_time   
#2000-01-03 01:00:00 True 100 
#2000-01-03 01:30:00 True 100 
#2000-01-03 02:00:00 True 650 
#2000-01-03 02:30:00 False 650 
#2000-01-03 03:00:00 True 650 
+0

这是非常有用的THX! 有没有办法检索返回cummax()的行的索引值(timestamp)? –