gpt4 book ai didi

python - 如何使用 Pandas 使用两列作为 VLOOKUP 的索引来执行条件 VLOOKUP?

转载 作者:行者123 更新时间:2023-12-04 00:00:12 25 4
gpt4 key购买 nike

我对 Pandas 和 Python 还很陌生,我根本不知道如何做一些在 Excel 中很容易完成的事情。我希望能从社区中得到一点帮助。

假设我有以下内容,这是一个与梦幻足球相关的 df,它具有三列 - “名称”、“年份”和“FantasyPts”。代码如下。

import pandas as pd

df = pd.DataFrame({'Name': ['Tom Brady', 'Tom Brady', 'Tom Brady', 'Patrick Mahomes', 'Patrick Mahomes', 'Patrick Mahomes'],
'Year': [2019, 2018, 2017, 2019, 2018, 2017],
'FantasyPts': [300, 350, 400, 500, 400, 50],
})

我想在名为“FantasyPtsPreviousYear”的表中添加另一列,但在 Pandas/Python 中如何做到这一点非常困难。

我想做的是:

  1. 对于表格中的每一行,让 python/pandas 检查 df 的那一行中的名称和年份。
  2. 查找同一玩家在上一年(即第 1 年)获得的幻想分数
  3. 将该数字填充到名为“FantasyPtsPreviousYear”的 df 新行中,或者,如果没有该玩家上一年的数据,则输入 0。

在 Excel 中,我只需创建新列并将这些列与 VLOOKUP 一起使用。我在 Pandas 中找到的与 VLOOKUP 最接近的东西是合并,但这似乎在这里不起作用(或者至少我不知道如何使它与这个特定的应用程序一起工作)。在试图找到答案后,我认为它可能与 loc() 函数和 For 循环有关,但我无法让它工作。

感谢您提供的任何帮助!我非常感谢它,并认为这个社区提供的所有帮助都很棒!

最佳答案

让我们试试 groupbyshift

df = df.sort_values(['Name','Year'],ascending=[True,True])
df['FantasyPtsPreviousYear'] = df['FantasyPts'].groupby(df['Name']).shift().fillna(0)

关于python - 如何使用 Pandas 使用两列作为 VLOOKUP 的索引来执行条件 VLOOKUP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62868252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com