2017-03-05 9 views
0

私はマルチインデックスのパンダの配列を持っていて、9:30〜10:00の間に最小値と最大値を見つけようとしています。私は配列を繰り返し、時間が一致するかどうかを調べることができます。しかし、それはパンダを経由する方法でなければなりません...Python Pandas複数のインデックスで時間単位で検索

取引日の30分をグループ化/検索する方法はありますか?私はそれをグループ化しようとしていますが、そのデータには市場前の価値があるので、[:30]を使用するだけでは正しく動作しません。

import pytz 
from datetime import datetime, date, time 
from datetime import timedelta 
import matplotlib.pyplot as pyplot 
from collections import defaultdict 
import pandas as pd 
from pandas.tseries.resample import TimeGrouper 
from pandas.tseries.offsets import DateOffset 
from pandas.tseries.index import DatetimeIndex 
from pandas import Timestamp 

def my_grouper(ts): 
    "Function to apply to the index of the DataFrame to break it into groups." 
    #pdb.set_trace() 
    # Returns midnight of the supplied date. 
    return pd.core.datetools.normalize_date(ts) 


def first_thirty_minutes(frame): 
    "Function to apply to the resulting groups." 
    start = frame.index.searchsorted("09:30:00") 
    end = frame.index.searchsorted("10:00:00") 
    return frame.iloc[start:end] 


hist = pd.read_csv("ES2.txt" ,index_col=0) 
eastern = pytz.timezone('US/Eastern') 
hist.index = pd.DatetimeIndex(hist.index).tz_localize('UTC').tz_convert('US/Eastern') 
data = hist.groupby(my_grouper).apply(first_thirty_minutes) 

データ:私はこの行を見出した多くの掘削後

DateTime,Hour,Open,High,Low,Close,Volume 
1997-09-11 00:00:00-04:00,1997-09-11 00:33:00-04:00,1176.25,1176.25,1174.5,1174.5,4 
1997-09-11 00:00:00-04:00,1997-09-11 00:34:00-04:00,1173.75,1173.75,1173.75,1173.75,1 
1997-09-11 00:00:00-04:00,1997-09-11 01:45:00-04:00,1173.25,1173.25,1173.25,1173.25,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:08:00-04:00,1172.75,1172.75,1172.75,1172.75,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:09:00-04:00,1172.5,1172.5,1172.5,1172.5,2 
1997-09-11 00:00:00-04:00,1997-09-11 04:10:00-04:00,1172.5,1172.5,1172.5,1172.5,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:11:00-04:00,1172.0,1172.0,1172.0,1172.0,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:20:00-04:00,1172.0,1172.0,1172.0,1172.0,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:21:00-04:00,1171.75,1172.25,1171.75,1172.25,4 
1997-09-11 00:00:00-04:00,1997-09-11 04:22:00-04:00,1172.0,1172.0,1171.5,1171.5,2 
1997-09-11 00:00:00-04:00,1997-09-11 04:25:00-04:00,1171.0,1171.0,1171.0,1171.0,1 
1997-09-11 00:00:00-04:00,1997-09-11 04:31:00-04:00,1170.5,1170.5,1170.5,1170.5,1 
+0

http://pandas.pydata.org/pandas-docs/stable/merging.html#merging-asof –

答えて

0

は(between_time

戻りframe.between_time

を使用してアルゴを修正取得のstart_time = '9:30'、 end_time = '10:00 ')

関連する問題