我有一个带有XY和距离的数据框。我要做的是将距离存储为一个变量,如果X或Y的值大于0,则从下一个距离中减去它
这是一个示例
dist x y
0 12.93 99.23
200 0 0
400 0 0
600 0 0
800 0 0
1000 12.46 99.14
1200 0 0
1400 0 0
1600 0 0
1800 0 0
2000 12.01 99.07
这是新的df
dist x y
0 12.93 99.23
200 0 0
400 0 0
600 0 0
800 0 0
0 12.46 99.14
200 0 0
400 0 0
600 0 0
800 0 0
2000 12.01 99.07
最后一个值无关紧要,但从技术上讲,它应该是0
其思想是,在每个已知的XY处,将距离指定为0,然后减去该距离,直到下一个已知的XY 在上面的例子中,距离是四舍五入的数字,但实际上,它们可以是
132.05
19.999
1539.65
等等
您可以使用
groupby
和apply
,使用自定义的grouper,计算如下:在哪里
其思想是标记所有必须从相应组的第一个非零值中减去的行
检查
transform
与
where
+ffill
相关问题 更多 >
编程相关推荐