То, чего я хочу достичь sh, - это возможность нормализовать мои значения так, чтобы все они начинались в произвольный день-ноль. Представьте себе DataFrame ниже:
df = pd.DataFrame(np.array([[1, 0, 0], [4, 5, 0], [7, 8, 9], [7, 8, 9], [4, 5, 0], [7, 8, 9]]),
columns=['a', 'b', 'c'],
index = ['1/1/2000', '1/1/2001', '1/1/2002', '1/1/2003', '1/1/2004', '1/1/2005'])
Что приводит к следующему:
a b c
1/1/2000 1 0 0
1/1/2001 4 5 0
1/1/2002 7 8 9
1/1/2003 7 8 9
1/1/2004 4 5 0
1/1/2005 7 8 9
Я пытаюсь добиться поиска первого ненулевого значения в каждом столбце и сдвига значения в этом столбце до индекса ноль. итоговый фрейм данных выглядит примерно так:
a b c
1/1/2000 1 5 9
1/1/2001 4 8 9
1/1/2002 7 8 0
1/1/2003 7 5 9
1/1/2004 4 8 0
1/1/2005 7 0 0
Я попытался использовать сдвиг, и я могу использовать что-то вроде этого:
df.b = df.b.shift(periods = -1, fill_value = 0)
, но в настоящее время я не знаю ни одного pandas удобный способ сделать это без использования циклов for и т. Д. c.
Цените, если кто-то может помочь в лучшем случае найти первое ненулевое значение, а затем правильно сместить значения в индекс ноль.