Python 迭代行和匹配值

标签 python pandas iteration rows

我需要 df1 中的结果列,当

条件 1:df1 的 Column1 中的每一行的值与 df2 的 Column1 的值匹配(如果为 true,则应移至条件 2),例如 df1 的 A1 应与 df2 的 A1 匹配,对于 A2 也类似,依此类推。

条件 2:如果第一个条件为真,它也应该匹配第二列。 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"

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

最佳答案

试试这个:

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

在您的示例中,您首先将“Good”分配给整个“Result”列,然后将“Not Good”分配给“Not Good”,我猜您并不真正想要。

关于Python 迭代行和匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025387/

相关文章:

java - 迭代 linkedhashmap 但超过一定范围

python - 为什么 Selenium (Python) 无法在带有链接文本的页面上找到链接?

python - 从文件中删除 <feff>

python - 有没有一种方法可以有效地转换 DataFrame 列中的数据类型?

python - 统一码编码错误 : 'ascii' codec can't encode character u'\u201c' when converting series object to unicode in pandas with utf-16

python - 在多索引数据集中按名称引用 pandas 索引

awk - 迭代时多列文件的gnuplot操作

python - 如何在没有转义序列的情况下取回与 fileInfo 一起存储的正确 json?

python - 如何编写基于类的 Django 验证器?

javascript - Jquery函数的迭代