a1 = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]})
b2 = pd.DataFrame({'A': [1,4], 'B': [3,6]})
我想得到
c = pd.DataFrame({'A': [1,2,3,4], 'B': [3,3,4,6]})
a1和b2在
key='A'
上合并但是当“ A”相等但B不同时,得到b2值
我如何获得这项工作?不知道。
最佳答案
首先,将两个数据帧彼此串联在一起,以获得一个大数据帧:
c = pd.concat([a1, b2], 0)
A B
0 1 2
1 2 3
2 3 4
0 1 3
1 4 6
然后,对A列进行分组,以仅获得A的唯一值,通过使用last可以确保比重复时使用b2的值更大。这给出:
c = c.groupby('A').last()
B
A
1 3
2 3
3 4
4 6
然后设置重置索引以获得一个不错的数字索引。
c = c.reset_index()
返回:
A B
0 1 3
1 2 3
2 3 4
3 4 6
要一次完成所有操作,只需输入以下代码行:
c = pd.concat([a1, b2], 0)
c = c.groupby('A').last().reset_index()
关于python - 如何合并和更新2个数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42829178/