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

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 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳