合并两个表并在两者具有相同值的情况下赋值
我有两个数据框表:
表 1=
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| Cell 1 | Cell 2 | None |
| Cell 3 | Cell 4 | None |
表 2 =
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| Cell 1 | Cell 2 | Value1 |
| Cell 3 | Cell 4 | Value2 |
Table1 =
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| Cell 1 | Cell 2 | None |<--|
| Cell 3 | Cell 4 | None | |
|
Table2 = | Table1[A][0] == Table2[A][0] -> Table1[C][0] = Table2[C][0]
| Column A | Column B | Column C | | And so with all the
lines that have a match, for example, by the value in
| -------- | -------- | -------- | | columns A
| Cell 1 | Cell 2 | Value1 |<--|
| Cell 3 | Cell 4 | Value2 |
第一个表比第二个表大。
第一张表和第二张表的值相同。我想为表 1 中的相同值填写表 1 中的 C 列。
简单的说,如果表1和表2的列有相同的值,比如A列,那么第二个表的C列的值就会赋给第一个表的C列。
if Table1[A]['value'] == Table2[A]['value']: Table1[C]['value'] = Table2[C]['value']
我也尝试过合并表格,但表格没有合并(表 1 保持不变):
df = Table1['C'].merge(Table2, on=['C'], how='left')
最佳答案
将公共(public)列设置为索引,然后在表 1 上使用 update
替换表 2 中的值
cols = ['Column A', 'Column B']
Table1 = Table1.set_index(cols)
Table1.update(Table2.set_index(cols))
Table1 = Table1.reset_index()
结果
print(Table1)
Column A Column B Column C
0 Cell 1 Cell 2 Value1
1 Cell 3 Cell 4 Value2
关于python - Pandas 。需要合并具有值映射的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74749908/