2016-10-13 6 views
1

私は2015年全体にわたる分粒率でユーロ米ドルの為替レートの時系列を持っています。週末)、非貿易期間全体に対してtimeseries値が繰り返されます。パンダ:日曜日23:00〜金曜日23:00(1年間)の間のデータを選択

日曜日23時から金曜日23時までのデータのみを選択することで、このような期間を破棄する必要があります。

私はPandasの解決策をまだ見つけていません(私は1日の中で時間を選択して日を選択する方法を知っています)。時間を1時間だけシフトしてから営業日のみを選択することもできますが、これは最適ではない解決策です。

どのようにこれを達成するためのアイデアですか?データの

例:

Local time,    Open, High, Low,  Close, Volume 
02.01.2015 22:58:00.000, 1.20008, 1.20016, 1.20006, 1.20009, 119.84 
02.01.2015 22:59:00.000, 1.20009, 1.20018, 1.20004, 1.20017, 40.61 
02.01.2015 23:00:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0 
02.01.2015 23:01:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0 
... 
04.01.2015 22:58:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0 
04.01.2015 22:59:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0 
04.01.2015 23:00:00.000, 1.19495, 1.19506, 1.19358, 1.19410, 109.4 
04.01.2015 23:01:00.000, 1.19408, 1.19414, 1.19052, 1.19123, 108.12 
... 

答えて

1

は、我々がどの値を決定

day_hour = (((tidx.weekday + 1) % 7) * 100) + tidx.hour 

をフィルタリングするための一連の値を構築することができpd.DataFramedfpd.tseries.index.DatetimeIndextidx

tidx = pd.date_range('2010-01-01', '2011-01-01', freq='H') 
df = pd.DataFrame(np.ones((tidx.shape[0], 2)), tidx, columns=list('AB')) 

を考えますはp金曜日23時00

before_friday = day_hour <= 523 

と日曜日の23時00

after_sunday = day_hour >= 23 

にrior上記の条件piRSquared

df[before_friday & after_sunday] 
+0

おかげに基づいて、当社のdfフィルタ、これは良い解決策だが、それはあります私は次のように変更しました: – SergeGardien

+0

tidx = pd.date_range( '2015-01-01'、 '2016-01-01'、freq = '1min') before_friday = day_hour <= 522 – SergeGardien

+0

これはあなたのダミー配列df2 = pd.DataFrame(np.ones((tidx.shape [0]、2))、tidx、columns = list( 'AB')でも動作しますが、私の元の配列には次の問題があります: "ValueError:525540ではなく、アイテムの長さが525601で間違っています。" – SergeGardien

関連する問題