2017-05-22 6 views
1

私は疎なパンダシリーズを持っています。説明のために、モックシリーズts2を作成しましょう。私は別の時間帯を持つ新シリーズ(前方充填を経由して)作成するために、TS2を使用するようにしたいと思います スパーサーシリーズを順方向に充填して新しいパンダシリーズを作成する

2016-01-31 11 
2016-02-07  9 
2016-02-14 13 
2016-02-21  4 

のように見えます

import pandas as pd 
idx2 = pd.date_range('2016-01-29', '2016-02-27', freq='W') 
ts2 = pd.Series(data=[11, 9, 13, 4], index=idx2) 

は、

idx1 = pd.date_range('2016-02-01', '2016-02-28', freq='D') 

を言います新しい時系列は次のようになります

2016-02-01 11 
2016-02-02 11 
2016-02-03 11 
2016-02-04 11 
2016-02-05 11 
2016-02-06 11 
2016-02-07 9 
2016-02-08 9 
... 
2016-02-08 4 

これを行う良い方法は何ですか? idx1とidx2の日付に不一致があることに注意してください。したがって、idx1に2016-02-01を入力するには、ts2で2016-01-31の値を検索する必要があります。

EDIT:idx1は毎日ではないかもしれませんが、平日からノルウェーの公休日など何らかの日付のコレクションになる可能性があります。

+0

あなたはTS2指数の分()の値を参照するIDX1を編集することはできますか?それとも何かこれを禁止していますか? –

+0

一般的に、idx1は毎日ではありません。 – Spinor8

答えて

0

EDIT:IDX1は特別な欠落日や休日

method='ffill'で使用reindexを持っている場合:

ts2.reindex(idx1, method='ffill') 

出力:

2016-02-01 11 
2016-02-02 11 
2016-02-03 11 
2016-02-04 11 
2016-02-05 11 
2016-02-06 11 
2016-02-07  9 
2016-02-08  9 
2016-02-09  9 
2016-02-10  9 
2016-02-11  9 
2016-02-12  9 
2016-02-13  9 
2016-02-14 13 
2016-02-15 13 
2016-02-16 13 
2016-02-17 13 
2016-02-18 13 
2016-02-19 13 
2016-02-20 13 
2016-02-21  4 
2016-02-22  4 
2016-02-23  4 
2016-02-24  4 
2016-02-25  4 
2016-02-26  4 
2016-02-27  4 
2016-02-28  4 
Freq: D, dtype: int64 

OR IDX1はちょうど毎日の増分である場合。

使用resampleffill

ts2.resample('D').ffill() 

出力:

2016-01-31 11 
2016-02-01 11 
2016-02-02 11 
2016-02-03 11 
2016-02-04 11 
2016-02-05 11 
2016-02-06 11 
2016-02-07  9 
2016-02-08  9 
2016-02-09  9 
2016-02-10  9 
2016-02-11  9 
2016-02-12  9 
2016-02-13  9 
2016-02-14 13 
2016-02-15 13 
2016-02-16 13 
2016-02-17 13 
2016-02-18 13 
2016-02-19 13 
2016-02-20 13 
2016-02-21  4 
Freq: D, dtype: int64 
+0

ありがとうございますが、これはidx1と同じインデックスを持っていません。まあ、上のケースでは、それは毎日でしたが、idx1は祝日を除いて平日のみになる可能性があります。 – Spinor8

+0

@ Spinor8 idfの場合はuseとし、メソッド 'ffill'を使って編集を参照してください。 –

+0

私は問題は 'idx1'は' ts2.index'のmin()日付を含んでいないと考えています。したがって、その値は前方に入力できません。私はこれを間違って解釈している可能性があります。 –

関連する問題