Строки суммирования фрейма данных Python

#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()