我有两个具有很多共享键列的熊猫数据帧,但是它们可能以不同的数据类型报告,例如,一个数据帧中的ID可能被报告为int值,而另一个数据帧中则是一个字符串,并且熊猫会合并合并时似乎不喜欢这样。
我来自R,通常通过将各列粘贴在一起以创建匹配变量作为字符串(实际上不必创建和存储该列)来解决这个问题,
df1$new_col = df2$new_col[match(paste(df1$pk1,df1$pk2,df1$pk3,sep='-'),paste(df2$pk1,df2$pk2,df2$pk3,sep='-'))]
有没有办法在熊猫中做类似的事情?
答案 0 :(得分:1)
我只是将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']])