gpt4 book ai didi

python - 计算 360 度圆内的移动平均线

转载 作者:行者123 更新时间:2023-12-04 01:07:44 26 4
gpt4 key购买 nike

这是我的数据

degree, value

0.0,0.42105263157894735
1.0,0.47368421052631576
2.0,0.47368421052631576
3.0,0.47368421052631576
4.0,0.5
5.0,0.5
6.0,0.5
7.0,0.47368421052631576
8.0,0.47368421052631576
9.0,0.47368421052631576
10.0,0.39473684210526316
..............
350.0,0.5263157894736842
351.0,0.5526315789473685
352.0,0.47368421052631576
353.0,0.47368421052631576
354.0,0.47368421052631576
355.0,0.4473684210526316
356.0,0.4473684210526316
357.0,0.4473684210526316
358.0,0.42105263157894735
359.0,0.42105263157894735

因此,它是从 0 到 359 度的圆。
我想使用这些值建立移动平均线。我这样做:

df['smoothing'] = df['value'].rolling(window=10).mean()   

degree value smoothed
0 0.0 0.526316 NaN
1 1.0 0.000000 NaN
2 2.0 0.000000 NaN
3 3.0 0.000000 NaN
4 4.0 0.000000 NaN
.. ... ... ...
355 355.0 0.000000 0.000000
356 356.0 0.447368 0.044737
357 357.0 0.500000 0.094737
358 358.0 0.526316 0.147368
359 359.0 0.500000 0.197368

但是有一个问题:我从 0 到 9 失去了值(value)。它们对我很重要。
因此,我的脚本必须使用度数 351,352,353,354,355 等来计算度数 0,1,2,3...的平均值。

我期望输出:

    degree      value                     smoothed
0 0.0 0.526316 mean value of 351-0 degrees
1 1.0 0.000000 mean value of 352-1 degrees
2 2.0 0.000000 mean value of 353-2 degrees
3 3.0 0.000000 mean value of 354-3 degrees
4 4.0 0.000000 mean value of 355-4 degrees
................
and so on

怎么做?谢谢。

最佳答案

您可以在采用rolling mean 之前将最后的9 值添加到数据帧中,以便0 得到351-0的平均值,1352-1的平均值,依此类推:

df1 = df[-9:].append(df)
df['smoothed'] = df1['value'].rolling(window=10).mean().dropna()

    degree     value  smoothed
0 0.0 0.421053 0.457895
1 1.0 0.473684 0.450000
2 2.0 0.473684 0.450000
3 3.0 0.473684 0.450000
4 4.0 0.500000 0.452632
5 5.0 0.500000 0.457895
6 6.0 0.500000 0.463158
7 7.0 0.473684 0.465789
8 8.0 0.473684 0.471053
9 9.0 0.473684 0.476316
10 10.0 0.394737 0.473684
....
....

关于python - 计算 360 度圆内的移动平均线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65856307/

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