当
时,我需要在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"
代码已编辑。更新最新更改。
答案 0 :(得分:1)
尝试一下:
df1['is_good'] = ((df1['EFE'] == df2['EFE']) & (df1['DOR'] == df2['DOR']))
在您的示例中,您首先将“良好”分配给整个“结果”列,然后将“不好”分配给我,我想这并不是您真正想要的。