df1.csv
df2.csv
После выполнения кода ниже,
df1.merge (df2, on = ['Customer_id'], индикатор = 'Status', how = 'external')
Я понимаю,
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
Могу ли я написать для цикла , чтобы мне не приходилось писать код
df3.assign ()
индивидуально для сравнения каждые два столбца?
и, самое главное, мой окончательный статус столбец должен выглядеть следующим образом:
выход
то, что я делаю, думает написать , если elif вот так:
def 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
Это нормально, если вы хотите написать , если elif только для двух столбцов Status1 и Status2 , и становится длиннее, если вы хотите написать , если elif для более чем 2 столбца. Могу ли я получить желаемый результат в несколько строк кода, если у меня есть столбец Status3 также?