计算组之间的移动平均值并在某些连续的组之间进行平滑处理

问题描述 投票:1回答:1

如果标题令人困惑,我深表歉意,我将尽力解释这个问题。我在这里有一个示例数据集:Ex.1

Segment Reach   OutSeg  Elevation
1   1   3   50
1   2   3   74
1   3   3   87
1   4   3   53
1   5   3   97
2   1   3   16
2   2   3   14
2   3   3   31
2   4   3   35
2   5   3   27
3   1   4   193
3   2   4   176
3   3   4   158
3   4   4   154
4   1   6   21
4   2   6   45
4   3   6   42
4   4   6   22
4   5   6   22
5   1   6   10
5   2   6   21
5   3   6   14
5   4   6   16

我想按Reach的顺序沿着每个Segment数计算Elevation的移动平均值(wa窗口为3),但是,其中Segment] >具有一个[[OutSeg值,我希望朝每个线段结尾的移动平均线从其参考线段(OutSeg)的开头开始使用Elevation值。例如,在细分1达到5(1,5)时,我希望移动平均值考虑(1,4),(1,5)和(3,1)处的值。我相信可能需要某种for循环...我已经尝试了以下代码,但它仅计算每个组内的移动平均值:

df [“ moving”] = df.groupby(“ Segment”)[“ Elevation”]。transform(lambda x:x.rolling(3,1)df["moving"] = df.groupby("Segment")["Elevation"].transform(lambda x: x.rolling(3,1)

提前感谢!

如果标题令人困惑,我深表歉意,我将尽力解释这个问题。我在这里有一个示例数据集:例1段到达OutSeg海拔1 1 3 50 1 2 3 74 1 3 3 87 ...

python pandas numpy math
1个回答
0
投票
我无法想象完全矢量化的方式,所以我只在应用特定功能的Segment上使用groupby。该函数将添加OutSeg子数据帧的第一行(如果有的话),计算滚动平均值,仅返回原始行。
© www.soinside.com 2019 - 2024. All rights reserved.