У меня есть датафрейм для панд, и он выглядит примерно так:
x y
1 0
2 1
3 2
4 0 <<<< Reset
5 1
6 2
7 3
8 0 <<<< Reset
9 1
10 2
Значения x
могут быть любыми, они не имеют значения для этого вопроса.Значение y увеличивается, сбрасывается и снова увеличивается.Мне нужен третий столбец (z)
, который представляет собой число, представляющее группы, поэтому он увеличивается при сбросе значений y.
Я не могу гарантировать, что сброс будет равен нулю, только значение, которое меньшечем предыдущий, должен указывать сброс.
x y z
1 0 0
2 1 0
3 2 0
4 0 1 <<<< Incremented by 1
5 1 1
6 2 1
7 3 1
8 0 2 <<<< Incremented by 1
9 1 2
10 2 2
Так что для получения z
я понимаю, что нужно сделать, просто не знаком с синтаксисом.Мое решение состоит в том, чтобы сначала присвоить z
в качестве разреженного столбца из 0 и 1, где все равно нулю, кроме 1, когда y[ix] < y[ix-1]
указывает на то, что счетчик y
был сброшен.Затем к столбцу z
должна быть добавлена кумулятивная промежуточная сумма, означающая, что: z[ix] = sum(z[0],z[1],...,z[ix])
Буду признателен за некоторую помощь с синтаксисом назначения столбца z, если у кого-то есть момент.