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值
我怎样才能完成这项工作?不知道。
答案 0 :(得分:2)
首先将两个数据帧连接在一起以获得一个大数据帧:
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的唯一值,使用最后一次确认,而不是在有重复时使用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()