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')
我们将得到有 4 行的 c。但是我们如何通过使用 merge() 函数得到像 {'a':[1,2], 'c':[3,4], 'b':[1,1]} 这样的 c?
最佳答案
这可行。 Pandas 合并在您实现时并不是那么好。
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
关于python - 当键值重复时,如何停止 pandas merge() 函数来做笛卡尔积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74804401/