170

一部の列のみをマージすることは可能ですか? 列 x、y、z を持つ DataFrame df1 と、列 x、a、b、c、d、e、f などを持つ df2 があります。

x で 2 つの DataFrame をマージしたいのですが、DataFrame 全体ではなく、列 df2.a、df2.b のみをマージしたいと考えています。

結果は、x、y、z、a、b を持つ DataFrame になります。

不要な列をマージして削除することもできますが、もっと良い方法があるようです。

4

6 に答える 6

9

これは、2 つのテーブルから選択した列をマージすることです。

列をtable_1含み、列を含み、最終テーブルで t1_a、id、t2_a のみが必要な場合、t1_a,t1_b,t1_c..,id,..t1_ztable_2t2_a, t2_b, t2_c..., id,..t2_z

mergedCSV = table_1[['t1_a','id']].merge(table_2[['t2_a','id']], on = 'id',how = 'left')
# save resulting output file    
mergedCSV.to_csv('output.csv',index = False)
于 2017-05-22T21:48:14.043 に答える
3

デフォルトで内部結合を使用して、複数文字の列名に対して受け入れられた回答をわずかに拡張します。

df1 = df1.merge(df2[["Key_Column", "Target_Column1", "Target_Column2"]])

これは、Key_Column両方のデータフレームに共通する唯一の列であると想定しています。

于 2021-07-07T16:05:59.193 に答える