当键值重复时,如何阻止pandas merge()函数做笛卡尔积?


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 {'a':[1,2], 'c':[3,4], 'b':[1,1]}呢?

可以。当你实现它的时候,熊猫合并并不是那么好。

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

最新更新