尽管 Python Pandas 中有共享值,但无法将 df2 合并到 df1?

Can not merge df2 to df1 despite shared values in Python Pandas?

我的情况真的很奇怪。我尝试使用一个公共列合并两个 DataFrame,如下所示:

df1.merge(df2, on = "customer_id", how = "left") 

然而,df2 中没有任何列加入 df1,即使它们共享 customer_id。在两个 DataFrame 中,customer_id 都是相同类型的“int”。怎么可能?我能做什么?

您需要将错误消息添加到 post。另外,最好粘贴一些您的数据,以便人们可以测试发生了什么。

例如:

df1 = pd.DataFrame({'customer_id':[1,1,1,2,2,2], 'data1':['a','b','c','d','e','f']})
df2 = pd.DataFrame({'customer_id':[2,5,3,4,3,1], 'data2':['aa','bb','cc','dd','ee','ff']})

现在我们可以测试发生了什么:

df1.merge(df2, on = "customer_id", how = "left") 

似乎有效。所以很可能你的数据结构有问题。

我个人不喜欢df.merge的语法,我建议改用pd.merge

pd.merge(df1, df2, how='left', on= 'customer_id')
of 
out = pd.merge(df1, df2, how='left', left_on= 'customer_id', right_on = 'customer_id')

有关合并的更多信息,请参阅 pandas.pydata.org/pandas-docs/stable/user_guide/merging.html