![](/img/trans.png)
[英]KeyError: 'cross' when trying to do cartesian product with 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.