without regrets 2019-04-05 19:54 采纳率: 100%
浏览 453
已采纳

PandasDataFrame合并出错误结果是什么原因怎么办?

df1和df2合并,想要df1中的用户创建时间合并在df2相对应的用户ID后面,用了df2.join(df1),合并后的df3的行数应该和df2的行数一样。但是df3行数比df2行数多很多。

为了验证join()方法是否有效,另外新建了两个数据量小的df6和df7,结果合并后的df8是正确的想要的结果。

所以很费解为什么df1和df2用join合并就得不到正确结果。求大神指导。

图片说明图片说明图片说明图片说明图片说明图片说明图片说明图片说明图片说明

  • 写回答

2条回答 默认 最新

  • huanyeliu 2019-04-07 00:08
    关注

    问题关键在于df1的column‘用户ID’有重复,这样使df2里一个用户ID对应df1多个相同的用户ID。这一点从df3里用户ID为1000015的多个行里有两个不同的用户账号创建时间可以得到验证。
    从你给的小数据的例子来说,如果df6的username列有两个‘张三’,df7.join(df6)的结果就会多比原来多出三行,因为df7的username列有三个‘张三’。
    解决方案只有查一查df1数据源有没有问题,比如造成一个用户ID会有多个创建时间的原因以及是否合理,如果df1本身合理那么和df2合并后得到的df3是否有意义?所以这取决于这个数据处理的目的是什么。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题