【发布时间】:2019-09-06 00:10:40
【问题描述】:
我正在处理体育统计数据,并希望提取过去 3 年的统计数据。如果我有一个包含播放器和年份的数据框,我如何从另一个具有匹配播放器、同一年和前 2 年的数据框中提取行?
df1 = pd.DataFrame([['ABC',2018,5,2,3],
['ABC',2017,52,21,31],['ABC',2016,15,12,13],
['ABC',2015,25,22,3]],
columns=['Player','Year','GS','G','MP'])
df1=
Player Year GS G MP
ABC 2018 5 2 3
ABC 2017 52 21 31
ABC 2016 15 12 13
ABC 2015 25 22 3
df2 = pd.DataFrame([["ABC",2017]], columns=['Player','Year'])
df2=
Player Year
ABC 2017
这应该会导致
Player Year GS G MP
ABC 2017 52 21 31
ABC 2016 15 12 13
ABC 2015 25 22 3
最终我想进行求和,但提取它会使这变得容易得多。有没有使用合并或过滤器的 Pythonic 方式来做到这一点?
【问题讨论】:
-
我没有看到从
df2中提取的任何列。你最终的目标是什么。 df2 中还有更多数据吗? -
对列求和,然后用结果更新 2018 行。对于在 df2 中有匹配的玩家和年份的所有 df1 都需要执行此操作(df2 有更多数据,如果不明显,请见谅)
标签: python pandas dataframe merge