[英]Pandas merge columns, but not the 'key' column
這似乎是一個愚蠢的問題,但這已經困擾了我一段時間。
DF1:
imp_type value
1 abc
2 def
3 ghi
DF2:
id value2
1 123
2 345
3 567
Merginge 2 df:
df1.merge(df2, left_on='imp_type',right_on='id')
收益率:
imp_type value id value2
1 abc 1 123
2 def 2 345
3 ghi 3 567
然后我需要刪除id
列,因為它基本上是imp_type列的副本。 為什么默認情況下合並會在兩個數據幀之間拉入連接鍵? 如果你不想拉入連接鍵,我認為至少應該設置為False的參數。 有沒有這樣的東西或者我做錯了什么?
我同意如果刪除其中一個列會很好。 當然,還有一個問題是如何命名剩余的列。
無論如何,這是一個解決方法。 只需重命名其中一列,以便連接的列具有相同的名稱:
In [23]: df1 = pd.DataFrame({'imp_type':[1,2,3], 'value':['abc','def','ghi']})
In [27]: df2 = pd.DataFrame({'id':[1,2,3], 'value2':[123,345,567]})
In [28]: df2.columns = ['imp_type','value2']
In [29]: df1.merge(df2, on='imp_type')
Out[29]:
imp_type value value2
0 1 abc 123
1 2 def 345
2 3 ghi 567
重命名列有點痛苦,特別是(正如DSM指出的那樣)與.drop('id', 1)
。 但是,如果您可以從一開始就安排聯接列具有相同的名稱,那么df1.merge(df2, on='imp_type')
將是最簡單的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.