熊猫数据框条件变化
Panda dataframe conditional change
我正在处理 csv 时间序列数据,它显示每个时间范围内的步数。一旦步数超过 65535,它将从 0 开始计数,等等。但是由于并非所有数据集都有 65535 计数(有些从 65530 开始,然后是 5,如果他们在时间范围内做了几个步骤),我不能想办法处理好,让6553x之后的每一个0都变成65536..等等
step realstep
65531 65531
65533 65533
65534 65534
2 65538
4 65540
我正在尝试计算实际步数以获得它们的差异(例如 step/minute)。
找到它在 diff
为负数时重置的位置,并将最大计数器值(65536,因为您从 0 开始计数)添加到该值之后的所有行。如果它重置多次(我添加了一些额外的数据),这将是灵活的
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
我正在处理 csv 时间序列数据,它显示每个时间范围内的步数。一旦步数超过 65535,它将从 0 开始计数,等等。但是由于并非所有数据集都有 65535 计数(有些从 65530 开始,然后是 5,如果他们在时间范围内做了几个步骤),我不能想办法处理好,让6553x之后的每一个0都变成65536..等等
step realstep
65531 65531
65533 65533
65534 65534
2 65538
4 65540
我正在尝试计算实际步数以获得它们的差异(例如 step/minute)。
找到它在 diff
为负数时重置的位置,并将最大计数器值(65536,因为您从 0 开始计数)添加到该值之后的所有行。如果它重置多次(我添加了一些额外的数据),这将是灵活的
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