我现在正在使用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,因为合并必须基于数据集母版进行。
感谢任何一个想法来解决这个问题,谢谢!
答案 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