2つのデータフレームに同じ列があります。これらのデータフレームをキー列にマージ(または結合)したいのですが、キーの一致がある場合は一致する行の1つの列を更新し、そうでなければ最初の/古いデータフレームを追加します。条件付きの2つのデータフレームを列の更新または行の追加にマージする
例Psudeocode:
for row in new_dataset:
if new_dataset['key'] == old_dataset['key']:
old_dataset['last_seen'] = new_dataset['last_seen']
else:
append row to old_dataset
例入力:
DF1
Key First_Seen Last_Seen Data Data
Bigfoot 2015 2015 Blah Blah
Loch_Ness 2016 2016 Blah Blah
UFO 2016 2004 Blah Blah
DF2
Key First_Seen Last_Seen Data Data
UFO 2017 2017 Blah Blah
Tupac 2017 2017 Blah Blah
所望の出力:
DF3
Key First_Seen Last_Seen Data Data
Bigfoot 2015 2015 Blah Blah
Loch_Ness 2016 2016 Blah Blah
UFO 2016 2017 Blah Blah
Tupac 2017 2017 Blah Blah
編集:非を追加するために、左マージその後、右の列を明示的に呼び出すと、キーにマージをやって、インデックスとしてキーに参加し、私は含まれるように、いくつかのアプローチを試みました一致した値。私が直面している問題は、マージがすべての列を結合したい、または完全に複製されたdfを作成するか、明示的に列を呼び出すときに、データフレームに合わせてパンダシリーズに一致させることができないことです。私は、列の呼び出しで2シリーズを使用して正規化するとき、私は上のマージするマッチした特定の行をバック返す方法がない、など
は 'pd.concat'は、'適切first_seenとlast_seen列を更新しないと、スタックオーバーフロー、@itotallyforgotに – Wen
をdrop_duplicate'。あなたがすでに試したこと、そしてそれがうまくいかなかったことを知るための答えをあなたに提供しようとする人にとっては役に立ちそうです。 – itotallyforgot
ようこそ、データの損失が発生します – Degan