Есть ли способ использовать предыдущее значение строки в функции применения панд, когда предыдущее значение суммируется итеративно? Или эффективный способ? - PullRequest
2 голосов
/ 24 июня 2019

У меня есть фрейм данных с некоторыми столбцами, и я хотел бы эффективно применить следующее преобразование.

С учетом приведенного ниже кадра данных:

   C    D
 ===========
  Nan  10
  0  22 
  2  280
  4  250
  6  270

Он должен быть преобразован таким образом, чтобы я мог получить следующий вывод:

   C    D
 ===========
  Nan  10
  0  22 
  2  280
  6  252
  12 276 

Обратите внимание, что:

C [i] = C [i] + C [i - 1] + ... + C [0]

и

D [i] = D [i] + C [i - 1]

Значения NaN должны быть отфильтрованы.

Thx!

Ответы [ 2 ]

1 голос
/ 25 июня 2019
df['C'] = df['C'].cumsum()
df['D'] = df['D'].add(df['C'].shift(1).fillna(0))

Выход:

      C      D
0   NaN      10.0
1   0.0      22.0
2   2.0     280.0
3   6.0     252.0
4   12.0    276.0
1 голос
/ 24 июня 2019

IIUC, вам нужно:

df['C'] = df['C'].add(df['C'].shift(1).fillna(0))
df['D'] = df['D'].add(df['C'].shift(1).fillna(0))

Выход:

       C       D
0   NaN      10.0
1   0.0      22.0
2   2.0     280.0
3   6.0     252.0
4   10.0    276.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...