首页 > 解决方案 > 在数据框中,从起始元素中查找小于/大于 0.05 的元素。然后将这个新索引作为第一个迭代器

问题描述

我有一个问题不是微不足道的,实际上很难解释。我从这样的事情开始: 根据连续的行值差异拆分数据框, 其中我将代码修改为:

    df1 = df1.assign(difference=(diff:=df1['Position'].diff()), 
                                 Change_position=(gt1:=diff.ne(0)), 
                                 Manoeuvre_nr=gt1.cumsum())

我的数据框如下,超过 1200 万行(索引是日期,但在这里不相关) 我的数据框的一小部分图片

我必须分析一个名为“Rounded_position”的列。我需要获取起始位置 [0],滑动其元素并找到第一个元素,其中 df['Rounded_position'][0] > 或 < (+/-)0.05。然后取这个新索引 df['Rounded_position'][ indx_new ] > or < (+/-)0.05 并做同样的事情,等等直到最后。

但是,在每行检查的同时,我需要在新列中给它一个标签,这意味着我需要计算我发现更改的所有时间。在我粘贴的链接中使用的方法中,它完成了部分工作,但它只检查行之间是否存在变化,而不是满足特定条件的行在哪里。我试图将其更改为 diff.gt(0.05) 但随后它会在每一行之间进行检查,这不是我需要的。

前任。从我的 df 开始,当我从 position=-2.12 开始并在列中向下滑动时,position=-2.07 的元素将是我的下一个“起始索引”,我将在那里放置标签“1”并继续标记“1”直到我找到满足条件的下一个元素。他们我更改标签等。

如果有人有任何提示,我将不胜感激。

标签: pythonpandasdataframedata-analysispython-3.8

解决方案


推荐阅读