python - Pandas 。需要合并具有值映射的表

标签 python pandas dataframe

合并两个表并在两者具有相同值的情况下赋值

我有两个数据框表:

表 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/

相关文章:

python - ruby 中 python 的 __file__ 相当于什么?

python - NetworkX 中的网络图未进行视觉优化

python - 为什么我们必须定义变量 dp = [0] * (n+1) 只是为了将其变量设置为等于 0(在动态规划中)

python - 如何通过从组中减去元素来创建变量?例如,每组每行的值 - 组值的第一行

python - 将 describe 函数应用于 pandas groupby 时如何忽略行的最大值和最小值

python - 如何让 str.translate 使用 Unicode 字符串?

python - 了解有关 DataFrame 操作的 Dask 分布式行为

python - 如果条目数小于一定数量,则每隔 15 秒删除所有条目

r 比较两个数据框之间的列类型

python - Pandas:当列中的所有数据均为 NaN 时,从多级索引中删除索引条目(及其所有行)