私は不規則な時系列を表す2つのデータフレームを持っています。ここ重複しているが同一ではない期間インデックスを持つ2つのデータフレームからデータフレームを作成する
はDF1からのサンプルである:
index
2014-10-30 16:00 118
2014-10-30 19:00 160
2014-10-30 22:00 88
2014-10-31 00:00 128
2014-10-31 03:00 89
2014-10-31 11:00 66
2014-10-31 17:00 84
2014-10-31 20:00 104
2014-10-31 21:00 82
2014-10-31 23:00 95
2014-11-01 02:00 44
2014-11-01 03:00 54
2014-11-01 14:00 83
2014-11-02 03:00 78
2014-11-02 04:00 87
2014-11-02 13:00 90
そしてここでは、DF2からのサンプルである:
index
2016-02-04 02:00 0.00
2016-02-06 00:00 50.00
2016-02-07 05:00 30.00
2016-02-07 21:00 26.00
2016-02-10 18:00 100.00
2016-02-11 00:00 20.00
2016-02-12 03:00 15.00
2016-02-12 18:00 90.00
2016-02-13 17:00 25.00
2016-02-13 19:00 40.00
2016-02-15 00:00 35.00
2016-02-18 04:00 14.00
2016-02-28 00:00 33.98
インデックスが毎時周波数とパンダ期間オブジェクトを、で表される時間の範囲であります2つのデータフレームのインデックスは確実にいくらか重複する。どのようにそれらのインデックスのユニオンによってインデックス付けされた単一のデータフレームにそれらをマージし、特定のインデックスの値が1つの列にない場合に空白(後でffill
を適用することができます)を残しますか?
ここに私が試したものです:
0
0 118.00
1 160.00
2 88.00
3 128.00
4 89.00
5 66.00
6 84.00
7 104.00
8 82.00
9 95.00
私も試してみました:
df1.merge(df2, how = 'outer', left_on = 'index', right_on = 'index')
これは与えた
df1.merge(df2, how = 'outer')
これは私のインデックスを失う無意味な結果のように思えた何を与えました私はKeyError
:
d2
列が元
df_2
ポストリサンプリングが正常に見えるにもかかわらず、全く
NaN
である出力を生成します。
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3979)()
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3843)()
pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12265)()
pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12216)()
KeyError: 'index'
は最後に、私はresampling
後に各データフレームを辞書で新しいデータフレームを作成してみました。
どのようにしてこのマージを行うことができますか?代わりにmerge
の
をドロップ
append
を使用*として説明してくださいそれらの指数*の和集合はあまりにも明瞭ではないが、2つのdfsから、望ましい出力がどのようになるかが示される。 – Parfait