首页 > 解决方案 > pandas 仅为另一个表的公共行设置列值

问题描述

输入

table 1

+---+---+---+
| A | B | C |
+---+---+---+
| a | b | 0 |
+---+---+---+
| x | y | 0 |
+---+---+---+
| w | q | 0 |
+---+---+---+

table 2
+---+---+
| A | B |
+---+---+
| a | b |
+---+---+
| w | q |
+---+---+

输出

table 1

+---+---+---+
| A | B | C |
+---+---+---+
| a | b | 1 | <-
+---+---+---+
| x | y | 0 |
+---+---+---+
| w | q | 1 | <-
+---+---+---+

我有两个表,我想将表 1 中的列 C 设置为 1,以便表 1 中的所有行与表 2 中的行具有相同的值。

标签: pandas

解决方案


采用

In [303]: df1['C'] = df1.merge(df2, how='left', indicator='_')['_'].eq('both').astype(int)

In [304]: df1
Out[304]:
   A  B  C
0  a  b  1
1  x  y  0
2  w  q  1

推荐阅读