python - python - 进行左合并并得到错误的输出
问题描述
df1:
id score
1000 174
1001 181
1002 162
1003 182
1005 97
... ...
3313 95
3316 91
3322 151
*1928 rows × 2 columns
df2:
date id
01/03/2019 1002
01/03/2019 1004
01/03/2019 1013
01/03/2019 1014
01/03/2019 1015
... ...
31/08/2019 3584
31/08/2019 3585
31/08/2019 3586
31/08/2019 3587
31/08/2019 3588
355775 rows × 3 columns
我想从 df1 中获取所有 id 和分数的输出,并将其与 df2 中的相关日期合并。
我的代码是pd.merge(df1, df2, how='left', on='id')
,出于某种原因,我也回来了不相关的日期。
这里有什么问题?
解决方案
根据评论,这里是答案。如果 ID 在 df1 中是唯一的,但在 df2 中不是唯一的,则 pandas 无法知道 df2 中的“正确”日期,因此所有日期将合并到给定 ID 的相同分数。
我怀疑您需要第三个数据框,其中您的信息与(可能)最佳得分与尝试次数或类似信息相匹配。
这不是编码问题,而是数据可用性。事实上,您的原始代码很好,但只有正确的输入。
推荐阅读
- reactjs - 使用 React Router 进行路由的正确方法
- angular - 如何在 Angular 4 中发出正常的发布请求
- ios - 在 UITabBarController 按钮单击时触发图像选择器
- c++ - 在 Visual Studio 中使用 C++17 静态内联成员时的奇怪行为
- python - 熊猫自动重命名相同的标题
- python - Python多处理创建等待函数输入的后台线程
- wso2 - WSO2 API 管理器中的 WSS 支持
- ios - 从 podspec 或 info.plist 中检索 pod 版本到代码中
- python - 带有 Pyodbc 的 Azure Python WebApp“服务不可用”
- cron - cron 作业执行时网站变慢