33

開始範囲/最初の 1 時間 (東部標準時午前 9:30 ~ 10:30) の分ベースの OHLCV データがあります。このデータを再サンプリングして、60 分の値を 1 つ取得し、範囲を計算できるようにします。

データに対して dataframe.resample() 関数を呼び出すと、2 つの行が取得され、最初の行は午前 9:00 に開始されます。午前 9 時 30 分に始まる行を 1 つだけ取得しようとしています。

注: 最初のデータは 9:30 から始まります。

ここに画像の説明を入力

編集: コードの追加:

# Extract data for regular trading hours (rth) from the 24 hour data set
rth = data.between_time(start_time = '09:30:00', end_time = '16:15:00', include_end = False)

# Extract data for extended trading hours (eth) from the 24 hour data set
eth = data.between_time(start_time = '16:30:00', end_time = '09:30:00', include_end = False)

# Extract data for initial balance (rth) from the 24 hour data set
initial_balance = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end =      False)

開始範囲を個々の日付で分けて初期残高を取得しようとして行き詰まりました

conversion = {'Open' : 'first', 'High' : 'max', 'Low' : 'min', 'Close' : 'last', 'Volume' : 'sum'}
sample = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end = False)
sample = sample.ix['2007-05-07']
sample.tail()

sample.resample('60Min', how = conversion) 

デフォルトでは、リサンプルは時間の初めに開始されます。データが始まるところから始めたいと思います。

4

2 に答える 2

35

base次の引数を使用できますresample

sample.resample('60Min', how=conversion, base=30)

上記の docs-linkから:

base: int、デフォルト 0
    1 日を均等に分割する頻度の場合、集計された間隔の「起点」。
    たとえば、「5 分」の頻度の場合、ベースは 0 ~ 4 の範囲になります。デフォルトは 0 です。

于 2013-02-13T19:10:13.217 に答える