pandas - 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 中的行具有相同的值。
解决方案
采用
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
推荐阅读
- javascript - 类方法内的 Javascript 递归(此行为)
- python - 循环遍历具有索引特定项的列表
- openrefine - 使用 openrefine 提取名称子字符串
- java - Maven 依赖项排除不起作用
- c# - C#从数据库中搜索开始日期和结束日期之间的日期
- rust - 了解 Rc 的用法
> 在锈 - sql - Finding_Missing_Dates_between_Dates_From_Data_OracleSQL
- model-view-controller - 哪种结构更适合我的 cms 平台
- javascript - 手风琴无法使用 Javascript(无法读取属性)
- r - 如何过滤掉R中的观察结果?