我正在尝试合并两个数据框,一个有用户月度活动,另一个有月费,两个都有一个ID号。我想按月合并活动和费用。
all_dat = pd.merge(activity,fees,on=[id,year_month])
当我尝试在ID和时间(datetime64)上加入它们时,结果只有每个用户的第一个匹配项,日期为2017-1-1。 尽管我可以在两个数据帧中清楚地找到许多相同的日期时间,但合并的只有2017-1-1的行。
> print(set(all_dat[year_month]))
{Timestamp('2017-01-01 00:00:00')}
费用框架看起来像这样:
USER_ID Name Time Fees
123 John 2016-12-01 300
123 John 2017-01-01 500
123 John 2017-02-01 400
活动一看起来像这样:
USER_ID Name Time Activity
123 John 2017-01-01 20
123 John 2017-01-02 30
我想通过合并得到这样的东西:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
123 John 2017-01-02 30 400
但我只得到第一场比赛:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
我不认为这是一个dtype问题,可能出了什么问题?
答案 0 :(得分:0)
我发现了问题,我在每个数据帧中以相反的顺序输入了月份和日期。由于1月1日是01-01,它是唯一一个获得任何比赛的人。请确保你的日期时间格式是统一的。