Pandas,需要合并具有值Map的表

icomxhvb  于 2022-12-17  发布在  其他
关注(0)|答案(2)|浏览(139)

合并两个表,并在两个表具有相同值时赋值
我有两个 Dataframe 表:
表1 =

| Column A | Column B | Column C |
| -------- | -------- | -------- |
| Cell 1   | Cell 2   |  None    |
| Cell 3   | Cell 4   |  None    |

表2 =
x一个一个一个一个x一个一个二个x
第一个表比第二个表
第一个表和第二个表具有相同的值。我想在表1的C列中填入表1中相同的值。
简单地说,如果表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')
yhxst69z

yhxst69z1#

将公共列设置为索引,然后使用table1上的update替换table2中的值

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
bbuxkriu

bbuxkriu2#

如果Table1['Table C']中没有任何要保留的数据,则可以从第一个表中删除Table C,然后删除merge

Table1 = Table1.drop(['Table C'], axis=1)
Table1 = Table1.merge(Table2, on=['Table A', 'Table B'], how='left')

输出:

注:

如果您需要一行程序:

Table1 = Table1.drop(['Table C'], axis=1).merge(Table2, on=['Table A', 'Table B'], how='left')

相关问题