#python #pandas
#python #pandas
Вопрос:
У меня есть счетчик переменной ‘A’, которая изменяется с течением времени (в секундах). Я хотел бы знать для каждого экземпляра получения ‘A’, сколько времени требуется для того, чтобы это было отменено. Может случиться так, что начальный экземпляр отменяется с использованием нескольких последующих экземпляров. Имеющийся у меня фрейм данных выглядит примерно так:
df = pd.DataFrame(columns = ['time', 'A'])
df.time = [1, 2, 3, 4, 5, 6, 7, 8]
df.A = [2, 6, 5, -2, -8, -7, 3, 4]
df
time A
0 1 2
1 2 6
2 3 5
3 4 -2
4 5 -8
5 6 -7
6 7 3
7 8 4
Теперь, что я хотел бы получить, это разница во времени между начальной A и когда A снова уменьшается. Например, для первых 2 требуется 3 секунды, чтобы отменить эти 2. Таким образом, ожидаемый результат будет:
A time_diff left_on_later_instance
0 2 3 0
1 6 3 2
2 2 2 0
3 3 3 4
4 -3 1 1
5 -1 2 0
6 -3 end 0
Обратите внимание, что я хотел бы выполнить усечение, когда A больше не сокращается, для чего я использовал здесь строку ‘end’, но это никоим образом не требуется. Кроме того, экземпляр A может быть очень большим, таким, что может потребоваться > 100 других экземпляров, прежде чем он будет полностью отменен, поэтому простое добавление еще 100 столбцов и просмотр их подобным образом не работает. Я бы предпочел не использовать что-то вроде itterrows(), поскольку это заняло бы слишком много времени.
Я не совсем уверен, с чего начать, поэтому любые указатели очень ценятся. Спасибо!