在 pandas 数据框中查找具有相同列值的行

2024-01-02

我有两个具有不同列大小的数据框,其中四个列在两个数据框中可以具有相同的值。我想在 df1 中创建一个新列,如果 df2 中的一行与 df1 中的一行具有相同的“A”、“B”、“C”和“D”列值,则该新列的值为 1 。如果没有这样的行,我希望该值为 0。行“E”和“F”对于检查值并不重要。

是否有一个 pandas 函数可以做到这一点,或者我是否必须循环执行此操作。

例如:

df1 =
A    B    C    D    E    F
1    1    20   20   3    2
1    1    12   14   1    3
2    1    13   43   4    3
2    2    12   34   1    4

df2 =
A    B    C    D    E    
1    3    12   14   2    
1    1    20   20   4   
2    2    21   31   5    
2    2    12   34   8    

预期输出:

df1 =
A    B    C    D    E    F    Target
1    1    20   20   3    2    1
1    1    12   14   1    3    0
2    1    13   43   4    3    0
2    2    12   34   1    4    1

这相当简单。如果检查两个 DataFrame 是否相等,它会检查每个元素是否等于各自的元素。

col_list = ['A', 'B', 'C', 'D']
idx = (df1.loc[:,  col_list] == df2.loc[:,  col_list]).all(axis=1)

df1['new_row'] = idx.astype(int)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 数据框中查找具有相同列值的行 的相关文章

随机推荐