【问题标题】:Getting the Average Value for each Group of a pandas Dataframe获取熊猫数据框每组的平均值
【发布时间】:2019-04-16 16:44:45
【问题描述】:

我成功地从 futbin.com 获取了 FIFA 19 球员的时间序列价格数据。我现在有超过 200'000 行的玩家和价格数据。对于每个玩家,我有大约 17 个不同的价格(带有各自的时间戳)

我现在想创建一个新的数据框,每个玩家只有一行,价格应该是该特定玩家一段时间内的平均价格。每个玩家都有一个唯一的“Futbin_ID”号码。 直到现在我无法弄清楚如何做到这一点...... 如果有人可以帮助我,我将不胜感激......

【问题讨论】:

标签: python pandas time-series pandas-groupby


【解决方案1】:

您可能希望按 Fubin_ID 对其进行分组,然后找到每个分组的平均值:

avg_price = df_ts.groupby('Futbin_ID')['price'].agg(np.mean)

如果您也想将数据框与其他列一起使用,则可以删除原始中的重复项,除了第一列,并将价格值替换为平均值:

df_ts.drop_duplicates(subset="Futbin_ID", keep="first", inplace= True)
df_ts.join[avg_price.set_index("Fubin_ID"), on="Futbin_ID"]

您可以在此处阅读有关 groupby 的更多信息:https://www.tutorialspoint.com/python_pandas/python_pandas_groupby.htm

【讨论】:

  • 非常感谢!但是当我这样做时,我得到一个只有两列(价格和 Futbin_ID)的新 df。如何保留所有列?
  • @Marcus 您需要定义用于聚合其他列的值的方法。因为看起来它们基本上只是重复'first'是你想要的
猜你喜欢
  • 2021-09-25
  • 2018-02-01
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2023-04-07
  • 2021-04-04
  • 2021-09-29
相关资源
最近更新 更多