熊猫离开了外连接

时间:2018-02-01 02:49:24

标签: python pandas merge left-join

我现在正在使用python pandas。 这是我遇到的一个问题。 有一个名为master的数据集,其长度如下:

print(len(master))
120000

然后我尝试使用另一个名为click的数据集左外连接:

master_active=pd.merge(master, click, how='left', on='user_id')
print(len(master_active))
120799

我不知道为什么数字会从120000更改为120799,因为合并必须基于数据集母版进行。

感谢任何一个想法来解决这个问题,谢谢!

1 个答案:

答案 0 :(得分:1)

您的合并仅保证结果将len(master.index)作为最小行数。正如@Wen所提到的,如果click在加入列时有多个匹配,则会有更多行。

这个例子应该澄清行为:

df1 = pd.DataFrame([['a', 1, 2], ['b', 2, 3], ['c', 4, 5]], columns=['A', 'B', 'C'])
df2 = pd.DataFrame([['a', 6, 7], ['a', 8, 9]], columns=['A', 'D', 'E'])

pd.merge(df1, df2, how='left')

#    A  B  C    D    E
# 0  a  1  2  6.0  7.0
# 1  a  1  2  8.0  9.0
# 2  b  2  3  NaN  NaN
# 3  c  4  5  NaN  NaN