想象我有熊貓以下DataFrames:如何避免Pandas.Merge
In [7]: A= pd.DataFrame([['foo'],['bar'],['quz'],['baz']],columns=['key'])
In [8]: A['value'] = 'None'
In [9]: A
Out[9]:
key value
0 foo None
1 bar None
2 quz None
3 baz None
In [10]: B = pd.DataFrame([['foo',5],['bar',6],['quz',7]],columns= ['key','value'])
In [11]: B
Out[11]:
key value
0 foo 5
1 bar 6
2 quz 7
In [12]: pd.merge(A,B, on='key', how='outer')
Out[12]:
key value_x value_y
0 foo None 5
1 bar None 6
2 quz None 7
3 baz None NaN
但我要的是(基本上避免了重複列):
key value
0 foo 5
1 bar 6
2 quz 7
3 baz NaN
我猜想我可以把輸出並刪除_x
值,並重新命名_y
但是,似乎是矯枉過正。在SQL上這將是微不足道的。
編輯:
約翰爲recomended使用:
In [1]: A.set_index('key', inplace=True)
A.update(B.set_index('key'), join='left', overwrite=True)
A.reset_index(inplace=True)
這工作和做什麼,我提出的要求。
的可能的複製[?如何更新大熊貓現有數據幀(http://stackoverflow.com/questions/18726497/how:
第二溶液還可以與更新的索引使用-to-更新現有的數據幀功能於熊貓) – root
@root它們是類似的問題,但是這個問題專門詢問如何鍵列上結合起來。 – johnchase
@johnchase:我掛的問題,專門用一個鍵列合併交易,實際上是在更普遍的,因爲它有兩個鍵列,而不是一個交易。同樣的方法適用於在單個鍵列上組合。查看接受答案的編輯。 – root