簡體   English   中英

當鍵值重復時,如何停止 pandas merge() 函數來做笛卡爾積?

[英]How to stop pandas merge() function to do cartesian product when key values are repeated?

a = pd.DataFrame({"a": [1,2], "b": [1,1]})
b = pd.DataFrame({"c": [3,4], "b": [1,1]})
c = a.merge(b, on=['b'], how='inner')

我們將得到 c 有 4 行。 但是我們如何通過使用 merge() 函數來得到 c like {'a':[1,2], 'c':[3,4], 'b':[1,1]} 呢?

這可以工作。 當你實現 Pandas merge 時,它並不是那么好。

c = pd.concat([a, b], axis=1, join='inner')
c = c.loc[:,~c.columns.duplicated()]
print(c)

返回這個:

   a  b  c
0  1  1  3
1  2  1  4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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