假设我们有一个这样的表(时间,距离,速度,距离变化(以米和秒为单位)):

   t    d    v  delta_d
0  0  1.0  0.5      NaN
1  1  1.5  0.1      0.5
2  2  1.6  0.1      0.1
3  3  1.7  0.0      0.1
4  4  1.7  0.1      0.0
5  5  1.8  0.1      0.1
6  6  1.9  0.6      0.1
7  7  2.5  0.7      0.6
8  8  3.2  0.7      0.7


如何删除未更改总delta_d的行?

即,如果我要遍历行,如何在n米的线段之间放置点?
本质上是基于距离进行“重采样”,但没有插值?

假设我只希望至少每0.15米读取一次,但我不想只滴下小于0.15m的点...

我可以使用一个for循环和一个计数器来执行此操作,然后除非我未达到阈值就将其丢弃,但是有熊猫可以做到这一点吗?

编辑:我的预期输出将是这样的:

   t    d    v  delta_d
0  0  1.0  0.5      NaN
1  1  1.5  0.1      0.5
3  3  1.7  0.0      0.1
6  6  1.9  0.6      0.1
7  7  2.5  0.7      0.6

最佳答案

希望我能正确理解您的问题,
要找出每行的不同值,可以使用pandas.DataFrame.diff

df = pd.DataFrame({'a': [1, 2, 4, 6, 5, 10]})
df['diff']=df.diff()


它会给你,像

python -  Pandas 在差异未达到阈值的地方放行-LMLPHP

之后,您可以根据自己的号码过滤出差异

df[df['diff']>=1]

关于python - Pandas 在差异未达到阈值的地方放行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56700158/

10-11 06:59