2017-03-16 84 views
2
a1 = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]}) 
b2 = pd.DataFrame({'A': [1,4], 'B': [3,6]}) 

,我想获得如何合并和更新2个Dataframes

c = pd.DataFrame({'A': [1,2,3,4], 'B': [3,3,4,6]}) 

A1和B2在key='A' 合并,但是当 'A' 相同,但b处,得到B2值

如何我可以得到这份工作吗?不知道。

回答

2

首先串连下彼此都dataframes得到一个大的数据帧:

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() 
+0

完美!非常感谢!:) –