基于dataframe Python(Python)中另一列的值计算列的移动平均值

基于dataframe Python(Python)中另一列的值计算列的移动平均值,python,python-3.x,pandas,dataframe,rolling-average,Python,Python 3.x,Pandas,Dataframe,Rolling Average,我正在尝试为nba球员创建一个10天移动平均分栏。我的数据框中有每个玩家的逐局统计数据,我希望移动平均线列包含当时的10天移动平均线。我试过df.groupby('player')['points.)。滚动(10,1)。意思是,但这只是给了我当天得分的移动平均数。每天列出的所有玩家,然后数据框移动到第二天,这样我就可以有几百行相同日期但不同玩家的数据。任何帮助都将不胜感激。谢谢。如前所述,您确实应该提供一个示例数据集,并展示您正试图实现的目标。然而,我喜欢处理体育数据,所以不介意花上几分钟左右的

我正在尝试为nba球员创建一个10天移动平均分栏。我的数据框中有每个玩家的逐局统计数据,我希望移动平均线列包含当时的10天移动平均线。我试过df.groupby('player')['points.)。滚动(10,1)。意思是,但这只是给了我当天得分的移动平均数。每天列出的所有玩家,然后数据框移动到第二天,这样我就可以有几百行相同日期但不同玩家的数据。任何帮助都将不胜感激。谢谢。

如前所述,您确实应该提供一个示例数据集,并展示您正试图实现的目标。然而,我喜欢处理体育数据,所以不介意花上几分钟左右的时间来获取样本集

所以基本上你需要在groupby上做一个滚动平均。很明显,你会注意到每个玩家的前10行都是空白的,因为它没有10个日期的平均值。您可以通过将最小值更改为1来更改该值。此外,在执行此操作时,您希望确保数据按日期排序(此处已按日期排序)


您的问题似乎缺少帮助您的必要信息。请附上一份包含所有必要信息的报告,以便能够轻松有效地进行测试。请包括解决方案的相关部分和数据框架的示例
df.to_dict().head(15)
大概是测试滚动平均值的合理数量。另外,请为您提供的样本数据(而不是完整的数据集)模拟一个您预期输出的样本。感谢您的回复!因此,我发现我的数据帧是以一种不允许正确计算的方式被索引的(对于每一个新的游戏日,索引返回到1),但是当我在运行这个之前重置索引时,它工作了!谢谢你的帮助-如果我有其他问题与这个项目有关,我知道谁来了!
import pandas as pd

player_link_list = ['https://www.basketball-reference.com/players/l/lavinza01/gamelog/2021/',
                    'https://www.basketball-reference.com/players/v/vucevni01/gamelog/2021/',
                    'https://www.basketball-reference.com/players/j/jamesle01/gamelog/2021/',
                    'https://www.basketball-reference.com/players/d/davisan02/gamelog/2021/']

dfs = []
for link in player_link_list:
    w=1
    df = pd.read_html(link)[-1]
    df = df[df['Rk'].ne('Rk')]   
    df = df[df['PTS'].ne('Inactive')]   
    df['Player'] = link.split('/')[-4]
    df['PTS'] = df['PTS'].astype(int,errors = 'ignore')
    dfs.append(df)
    

df = pd.concat(dfs)

df['rolling_10_avg'] = df.groupby('Player')['PTS'].transform(lambda s: s.rolling(10, min_periods=10).mean())