如果标题令人困惑,我深表歉意,我将尽力解释这个问题。我在这里有一个示例数据集: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 ...
Segment
上使用groupby。该函数将添加OutSeg
子数据帧的第一行(如果有的话),计算滚动平均值,仅返回原始行。