Python 循环列以在数据帧中一次比较两列,并基于每个比较结果添加一个摘要列

Python 循环列以在数据帧中一次比较两列,并基于每个比较结果添加一个摘要列,python,pandas,if-statement,matching,data-comparison,Python,Pandas,If Statement,Matching,Data Comparison,在执行下面的代码之后 df1.mergedf2,on=['Customer\u id',indicator='Status',how='outer' 我知道 现在我想比较Name_x中的所有元素是否等于Name_y,其他列也是如此。我所做的是单独比较。这是我的密码: df3.assignStatus1=df3.Name\u x==df3.Name\u y df3.assignStatus2=df3.Age\u x==df3.Age\u y 等等 在做了以上工作后,我得到了 我可以为循环编写代码,

在执行下面的代码之后

df1.mergedf2,on=['Customer\u id',indicator='Status',how='outer'

我知道

现在我想比较Name_x中的所有元素是否等于Name_y,其他列也是如此。我所做的是单独比较。这是我的密码:

df3.assignStatus1=df3.Name\u x==df3.Name\u y

df3.assignStatus2=df3.Age\u x==df3.Age\u y

等等

在做了以上工作后,我得到了

我可以为循环编写代码,这样就不必编写代码了吗

分配

每两列分别进行比较

最重要的是我的最终状态栏应该是这样的

我想写的是如果elif是这样的:

def frow:

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
如果只想在两列Status1和Status2上写入if-elif,这是可以的;如果要在两列以上写入if-elif,则会变得很长。如果我还有列Status3,我能在几行代码中获得所需的输出吗?

使用pandas.merge

将两个csv读入熊猫

df1=pd.Dataframe.from_csv('file')
df2=pd.Dataframe.from_csv('file2')
然后使用外部联接进行合并

df3=pd.merge(df1,df2,on=[key1,key2 etc], how="outer", indicator=True) 

此时,您应该完成90%

您似乎要求我们为您编写应用程序代码,而不是询问特定的编程问题。您需要提供一个最小、完整且可验证的问题示例。我们不是来给你做家庭作业的。