gpt4 book ai didi

python - 如何计算 n 行的平均值并将答案粘贴到 pandas 列的下 n 行?

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:13 29 4
gpt4 key购买 nike

我有一个每周销售数据框

Sales           weekNum 
83 1
139 2
207 3
278 4
274 5
291 6
319 7
305 8

我想计算前 4 周的平均值并将其粘贴到第 5 到 8 周的索引中

我希望我的输出数据集如下所示

Sales   weekNum   4-PreviousWeekAverage
83 1
139 2
207 3
278 4
274 5 176.75
291 6 176.75
319 7 176.75
305 8 176.75

同样,我也想计算 8 周平均值并将其粘贴到 5 到 8 的索引中

我试过了

for i in [4, 8]:
newColumnName1 = '%s-PreviousWeekAverage' % i
df[newColumnName1] = np.nan


for ix in df.index:
if ix - i >= 0:

df.loc[ix, newColumnName1] = np.mean(sampledf.loc[ix-i:ix-1,'Sales'])

但是它返回如下移动平均线

Sales   weekNum 4-PreviousWeekAverage
83 1
139 2
207 3
278 4
274 5 176.75
291 6 224.5
319 7 262.5
305 8 290.5

我在循环时遇到问题,无法找到正确的脚本。因此将感谢您的帮助。

最佳答案

groupby on weekNum 和 transform by mean

df.groupby((df.weekNum - 1) // 4).Sales.transform('mean').shift(4)

0 NaN
1 NaN
2 NaN
3 NaN
4 176.75
5 176.75
6 176.75
7 176.75
Name: Sales, dtype: float64

关于python - 如何计算 n 行的平均值并将答案粘贴到 pandas 列的下 n 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51141366/

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