熊猫数据框条件更改

时间:2019-01-28 04:41:49

标签: python pandas dataframe conditional

我正在处理csv时间序列数据,该数据显示每个时间范围内的步数。一旦步数超过65535,它将从0开始计数,以此类推。但是,由于并非所有数据集都具有65535计数(有些从65530开始,所以从5开始,如果他们在时间范围内迈出了几步),我将无法找到一个好方法来处理它,以便6553x之后的每个0都将变为65536。等等。

step    realstep
65531     65531
65533     65533
65534     65534
2         65538
4         65540

我正在尝试计算实际步数,以获取它们的差异(例如,步数/分钟)。

1 个答案:

答案 0 :(得分:4)

找到将diff设置为负的复位位置,然后将最大计数器值(由于从0开始计数,所以为65536)添加到超出该值的所有行中。如果它多次重置(我添加了一些额外的数据),这将很灵活

df['real_step'] = df.step + df.step.diff(1).lt(0).cumsum()*65536

    step  real_step
0  65531      65531
1  65533      65533
2  65534      65534
3      2      65538
4      4      65540
5  65434     130970
6      2     131074
7      4     131076