Python迭代行和匹配值

时间:2019-11-25 04:48:20

标签: python pandas iteration rows

时,我需要在df1中添加一个结果列

条件1:df1的Column1中的每一行的值与df2的Column1中的值匹配(如果为true,则应移至condition2),例如df1的A1应该与df2的A1匹配,并且类似地适用于A2,依此类推。

条件2:如果第一个条件为true,则还应与第二列匹配。 B2(df1)应该等于B2(df2)。

结果列位于df1中。并在两个条件都为真时在相应的行中返回“匹配”或“不匹配”。

我尝试了以下代码,但它匹配整个列而不是逐行。 (我认为)

import pandas as pd 
#reading data
df1 = pd.read_excel("Book1.xlsx")
df2 = pd.read_excel("Book2.xlsx")
c1 = df1['EFE'] == df2['EFE'] #EFE IS COLUMN 1
c2 = df1['DOR'] == df2['DOR'] #DOR IS COLUMN 2
#Giving No error but result is not as desired. Each EFE is marked not good
if c1 is True and c2 is True:
   df1['Result'] = "Good"
else:
   df1['Result'] = "Not Good"

代码已编辑。更新最新更改。

1 个答案:

答案 0 :(得分:1)

尝试一下:

df1['is_good'] = ((df1['EFE'] == df2['EFE']) & (df1['DOR'] == df2['DOR']))

在您的示例中,您首先将“良好”分配给整个“结果”列,然后将“不好”分配给我,我想这并不是您真正想要的。