簡體   English   中英

Pandas合並列,但不是“關鍵”列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM