gpt4 book ai didi

python - 在滚动函数中确定窗口的函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:37 25 4
gpt4 key购买 nike

我有一个数据框,我想在其中对 3 对中的一列数字应用滚动均值,我只希望将 4 个唯一值放入均值。假设我的数据框看起来像:

     Group  Column to roll    
1 9
2 5
2 5
2 4
2 4
2 4
2 3
2 3
2 3
2 6
2 6
2 6
2 8

因为我想要 4 个唯一值进入平均值,但所有值都具有相同的权重并且在同一组中,所以我的预期输出(假设我需要 4 个唯一值)将是:

         Group    Output   
1 nan
2 nan
2 nan
2 nan
2 nan
2 nan
2 nan
2 nan
2 nan
2 (6+3+4+5)/4
2 (6+3+4+5)/4
2 (6+3+4+5)/4
2 (8+6+3+4)/4

有什么办法吗?

最佳答案

你可以尝试这样的事情:

df['Column to roll'].drop_duplicates().rolling(4).mean().reindex(df.index).ffill()

输出:

0      NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 4.50
9 4.50
10 4.50
11 5.25
Name: Column to roll, dtype: float64

编辑问题已更改

df_out = df.groupby('Group')['Column to roll']\
.apply(lambda x: x.drop_duplicates().rolling(4).mean()).rename('Output')

df.set_index('Group',append=True).swaplevel(0,1)\
.join(df_out, how='left').ffill().reset_index(level=1, drop=True)

输出:

       Column to roll  Output
Group
1 9 NaN
2 5 NaN
2 5 NaN
2 4 NaN
2 4 NaN
2 4 NaN
2 3 NaN
2 3 NaN
2 3 NaN
2 6 4.50
2 6 4.50
2 6 4.50
2 8 5.25

关于python - 在滚动函数中确定窗口的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50222286/

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