2つのデータフレームを結合しようとしていますが、可能性について頭を悩ませることはできませんPythonが提供する必要があります。
最初のデータフレーム:
ID MODEL REQUESTS ORDERS
1 Golf 123 4
2 Passat 34 5
3 Model 3 500 8
4 M3 5 0
2番目のデータフレーム:
MODEL TYPE MAKE
Golf Sedan Volkswagen
M3 Coupe BMW
Model 3 Sedan Tesla
私が欲しいのは、「make」という最初のデータフレームに別の列を追加して、次のようにすることです。
ID MODEL MAKE REQUESTS ORDERS
1 Golf Volkswagen 123 4
2 Passat Volkswagen 34 5
3 Model 3 Tesla 500 8
4 M3 BMW 5 0
マージ、結合、およびマップについては既に見てきましたが、すべての例で必要な情報がデータフレームの最後に追加されています。
この場合はそうではありませんが、df2に3つ以上の列があり、特定の列をキーとしてそれらの1つをdf1に追加したい場合があります。役に立つと思われる一般的なコードを次に示します。
df = pd.merge(df1, df2[['MODEL', 'MAKE']], on = 'MODEL', how = 'left')
join
メソッドは、VLOOKUPと非常によく似た動作をします。最初のデータフレームの列を2番目のデータフレームのインデックスと結合するため、2番目のデータフレームのインデックスとしてMODEL
を設定し、MAKE
カラムのみを取得する必要があります。
df.join(df1.set_index('MODEL')['MAKE'], on='MODEL')
実際にWord VLOOKUPを使用している joinのドキュメント を見てください。
私はいつもマージがこれを行う簡単な方法だと思っていました:
df1.merge(df2[['MODEL', 'MAKE']], how = 'left')
ただし、新しい列を「MAKE」以外の名前にしたい場合は、短くてニースではないことを認めなければなりません。