Python 在不同类型的多列上合并两个数据帧

Python 在不同类型的多列上合并两个数据帧,python,r,pandas,merge,matching,Python,R,Pandas,Merge,Matching,我有两个pandas数据帧,它们有很多共享键列,但是它们可能以不同的数据类型报告,例如,一个ID可以在一个数据帧中报告为int,另一个数据帧中报告为string,pandas merge在合并时似乎不喜欢这样 我来自R,通常通过将列粘贴在一起创建一个匹配变量作为字符串来解决这个问题(实际上不必创建和存储该列),如下所示: 有什么方法可以在熊猫身上做类似的事情吗?我只是把R转换成pandas按照你的逻辑来做 df1.assign(Newkey=df1.pk1.astype(str)+'-'+df1

我有两个pandas数据帧,它们有很多共享键列,但是它们可能以不同的数据类型报告,例如,一个ID可以在一个数据帧中报告为int,另一个数据帧中报告为string,pandas merge在合并时似乎不喜欢这样

我来自R,通常通过将列粘贴在一起创建一个匹配变量作为字符串来解决这个问题(实际上不必创建和存储该列),如下所示:


有什么方法可以在熊猫身上做类似的事情吗?

我只是把
R
转换成
pandas
按照你的逻辑来做

df1.assign(Newkey=df1.pk1.astype(str)+'-'+df1.pk2.astype(str)+'-'+df1.pk3.astype(str)).merge(df2.assign(Newkey=df2.pk1.astype(str)+'-'+df2.pk2.astype(str)+'-'+df2.pk3.astype(str))[['Newkey','new_col']])
df1.assign(Newkey=df1.pk1.astype(str)+'-'+df1.pk2.astype(str)+'-'+df1.pk3.astype(str)).merge(df2.assign(Newkey=df2.pk1.astype(str)+'-'+df2.pk2.astype(str)+'-'+df2.pk3.astype(str))[['Newkey','new_col']])