3

こんにちは、時系列インデックスが営業時間外の場合にマスクしたい時系列があります。

営業日のデータは希望どおりにできますが、時間単位のデータはできません

import datetime
import pandas as pd
import numpy as np
from pandas.tseries.offsets import *

st = datetime.datetime(2013, 1, 1)
ed = datetime.datetime(2013, 2, 1)
myrange = pd.date_range(st, ed, freq='H')
ts = pd.Series(np.random.randn(len(myrange)), index=myrange)
ts.asfreq(BDay()).asfreq(Day())

BDay の日付範囲を生成してから、頻度を時間単位に変更しようとしましたが、うまくいきません。

newrange = pd.date_range(datetime.datetime(2013, 1, 1), datetime.datetime(2013, 1, 1), freq='B') 
#but adding this doesn't work .asfreq(Hour())
ts[ts.index.isin(newrange)].asfreq(Hour()) #Of course this only gives one value on the day

ありがとう

4

1 に答える 1

3

時間を営業日に制限するには、次を使用できます。

ts = ts.ix[ts.index.map(BDay())]

営業時間内にindexer_between_time制限するには:

ts = ts.ix[ts.index.indexer_between_time(time(7), time(18))]

営業時間内の営業日に限定する(いずれかの順で適用)。

于 2013-05-10T07:20:03.920 に答える