这是我的数据
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。它们对我很重要。
所以,我的脚本必须使用度数351352353354355等等来计算度数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
{9
值前置到数据帧,以便0
get是351-0
的平均值,1
获取352-1
的平均值,依此类推:从逻辑上看,您似乎在寻找一个圆形滑动窗口,例如,120将平均值从101到120,但0将平均值从351到0
不幸的是,Pandas不支持这一点,但您可以转换这些值来强制它这样做。只需将值351复制到-9,352复制到-8,依此类推,然后取一个滚动平均值(显然只保留正角度)
相关问题 更多 >
编程相关推荐