#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Если у меня есть фрейм данных со n
строками, есть ли способ установить для i-й строки значение суммы row[i]
и row[i-1]
и сделать это так, чтобы присвоение более ранним строкам отражалось в последних строках? Я бы очень хотел избежать циклов, если это возможно.
Пример DF:
SPY AAPL GOOG
2011-01-10 0.44 -0.81 1.80
2011-01-11 0.00 0.00 0.00
2011-01-12 -1.11 -2.77 -0.86
2011-01-13 -0.91 -4.02 -0.68
Пример псевдокода суммирования двух строк:
DF[2011-01-11] = DF[2011-01-10] DF[2011-01-11]
DF[2011-01-12] = DF[2011-01-11] DF[2011-01-12]
и так далее.
Комментарии:
1. Я думаю, вы имеете в виду суммирование по столбцам. Я предлагаю вам изменить это (в названии, если это возможно), чтобы упростить поиск для более пользователей
Ответ №1:
исходя из вашего вопроса, вы ищете совокупную сумму по каждому столбцу. вы могли бы использовать cumsum()
метод
DF.cumsum()
SPY AAPL GOOG
2011-01-10 0.4400 -0.8100 1.8000
2011-01-11 0.4400 -0.8100 1.8000
2011-01-12 -0.6700 -3.5800 0.9400
2011-01-13 -1.5800 -7.6000 0.2600
Комментарии:
1. Нет, я действительно хотел это сказать.
2. т. е. строка [i]= строка [i-1] строка [i], но строка [i-1] — это не исходная строка, а скорее сумма строк [i-1] и строк [i-2]
Ответ №2:
Использовать DF.shift()
DF DF.shift()