我在做 df.Merge 错了吗? [英] Am I doing a df.Merge wrong?

查看:56
本文介绍了我在做 df.Merge 错了吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有一个 df1 看起来有这一行

So I have one df1 which looks has this row amongst others

PlayDate   Timeslot   UserID
2005-09-09   6-16-1   59

我有 df2,其中包含:

and I have df2 which contains:

UserID   PlayDate   Timeslot   PlayCount   EstProb
59       2005-09-09  6-16-1       1        0.214459

然后我尝试使用合并将 df2 中的额外列引入 df1.df1.merge(df2,how='left',on=['Timeslot','PlayDate','UserID'])

I then try and bring in the extra columns from df2 into df1 using a merge. df1.merge(df2,how='left',on=['Timeslot','PlayDate','UserID'])

(请注意,df1 的列比 df2 中存在的列多,因此我做左)

(Note that df1 has more columns than exist in df2 hence why I do a left)

当我之后查看 df1 时,我看到:

When I review df1 afterwards I see:

PlayDate    Timeslot   UserID   PlayCount   EstProb
2005-09-09   6-16-1      59       NaN         NaN

我做错了什么?

推荐答案

检查以确保数据帧的 dtypes 匹配.

Check to make sure that your dtypes of your dataframes match.

df1['PlayDate'] = pd.to_datetime(df1['PlayDate'])
df2['PlayDAte'] = pd.to_datetime(df2['PlayDate'])
df1.merge(df2,how='outer',on=['Timeslot','PlayDate','UserID'])

输出:

     PlayDate Timeslot  UserID  PlayCount   EstProb
0  2005-09-09   6-16-1      59          1  0.214459

这篇关于我在做 df.Merge 错了吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆