首页 > 解决方案 > 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'),出于某种原因,我也回来了不相关的日期。

这里有什么问题?

标签: pythonpandasmerge

解决方案


根据评论,这里是答案。如果 ID 在 df1 中是唯一的,但在 df2 中不是唯一的,则 pandas 无法知道 df2 中的“正确”日期,因此所有日期将合并到给定 ID 的相同分数。

我怀疑您需要第三个数据框,其中您的信息与(可能)最佳得分与尝试次数或类似信息相匹配。

这不是编码问题,而是数据可用性。事实上,您的原始代码很好,但只有正确的输入。


推荐阅读