-3

df1.csv

df2.csv

以下のコードを実行した後、

df1.merge(df2, on=['Customer_id'], indicator='Status', how='outer')

私は、

df3.csv

ここで、他の列についても同様に、Name_x のすべての要素が Name_y と等しいかどうかを比較したいと思います。私がやっていることは、それを個別に比較することです。これが私のコードです:

df3.assign(Status1=df3.Name_x == df3.Name_y)

df3.assign(Status2=df3.Age_x == df3.Age_y)

等々

上記を行った後、

df4.csv

コードを書かなくてもいいように for ループを書いてもいいですか

df3.assign()

2列ごとに個別に比較するには?

そして最も重要なことは、私の最終ステータス列が次のようになることです。

出力

私がやっていることは、次のようなelifの場合に書くことを考えています:

デフォルト f(行):

if row['Status1'] == 'True' and row['Status2'] == 'False':
    val = 'Matching for column {Name}'
elif row['Status1'] == 'False' and row['Status1'] == 'True':
    val = 'Matching for column {Age}
elif row['Status1'] == 'False' and row['Status1'] == 'False':
    val = 'Not Matching at all' #and so on...
return val

if elifを Status1 と Status2 の 2 つの列だけに書きたい場合はこれで問題ありませんが、2 つ以上の列にif elifを書きたい場合は長くなります。列Status3もある場合、数行のコードで目的の出力を取得できますか?

4

1 に答える 1