私は非常に長い(100,000+)パンダのデータフレームを持っています。このデータフレームを別のデータフレームにマージしようとしていますデータフレームオブジェクト。たとえば、私たちはそのオブジェクト1は、以下の通りですとしましょう:最も近い日時に基づいてデータフレームを異なるデータフレームにマージ/結合する
DateTime x_1 y_1
2016-07-05 08:30:00 1 2
2016-07-05 08:30:01 3 4
2016-07-05 08:30:02 5 6
2016-07-05 08:30:03 7 8
2016-07-05 08:30:05 9 10
2016-07-05 08:30:11 11 12
とオブジェクト2は、以下の通りである。
DateTime x_2 y_2
2016-07-05 08:30:00 13 14
2016-07-05 08:30:05 15 16
2016-07-05 08:30:05 17 18
2016-07-05 08:30:10 19 20
私は同じ長さを持つ新しいオブジェクト、オブジェクト3を、返すようにしたいですobject2になり、object2の時刻に最も近いobject1の項目が含まれるようになりました。オブジェクト3は、この場合には、次のようになります。
DateTime x_2 y_2 x_1 y_1
2016-07-05 08:30:00 13 14 1 2
2016-07-05 08:30:05 15 16 9 10
2016-07-05 08:30:05 17 18 9 10
2016-07-05 08:30:10 19 20 11 12
を私は現在、この作業を取得するために、これらの線に沿って何かをするが、私はREINDEXエラー(非一意のインデックス)を取得:
object3 = object2.join(object1.reindex(object2.index, method='nearest'), how='left')
:ユニークな値にreindex
を行い
ValueError: cannot reindex a non-unique index with a method or limit
多対1の例では、同じ日時にマージすることが起こります。それは意図的でしたか?そうでない場合は、「近い」とは何を意味し、どのように処理するかの例を挙げることができますか? – piRSquared
@unutbu:はい!すみません、それは2016-06-05 08:30:10 – sos
@piRSquared:yes!これは意図的だった。私はインデックスの重複を保持することを望んでいた – sos