【发布时间】:2021-03-04 19:17:33
【问题描述】:
出于某种原因,我无法确定为什么 Pandas 没有合并我的两个数据框。我遵循了其他几个解决方案,但仍然没有得到预期的输出。
我的主要数据框df 包含篮球运动员数据,并且非常大,有 10000 多行。这是df的sn-p:
Date Team
12/10/2020 BOS
12/10/2020 ATL
12/10/2020 PHI
12/11/2020 BOS
12/11/2020 ATL
12/11/2020 PHI
我的第二个数据框ps 要小得多,只有 1000 行,并且包含团队信息:
Date Team Points H/A
12/10/2020 ATL 70 1
12/10/2020 PHI 120 1
12/10/2020 BOS 100 0
12/11/2020 BOS 110 0
12/11/2020 PHI 93 1
12/11/2020 ATL 104 0
匹配df 和ps 后df 的预期输出:
Date Team Points H/A
12/10/2020 BOS 100 0
12/10/2020 ATL 70 1
12/10/2020 PHI 120 1
12/11/2020 BOS 110 0
12/11/2020 ATL 104 0
12/11/2020 PHI 93 1
我的尝试:
pd.merge(df,ps, on=['Team','Date'])df = pd.merge(df,ps, on=['Team','Date']) 我相信和上面的一样,只是再次分配df。
当我执行上述任一操作并将 df 保存到 CSV 时,ps 标头和数据不会出现在 df 的任何位置。我想将ps 与df 合并,匹配“日期”和“团队”,以便df 中的每个玩家都有来自ps 列“点”和“H/A”的对应值。我应该注意,两个数据集中的日期都不是按时间顺序排列的,如果有区别的话。
【问题讨论】:
-
@chitown88 我很感激这个提议!我的一个数据集的日期是通过
df.apply(lambda x: datetime.date(x['Year'], x['Month'], x['Day']), axis=1)处理的,并且是对象数据类型,而不是我预期的日期时间。确保两个数据集中的日期均为 datetime 类型,从而解决了问题!