Кумулятивная сумма как MS Excel в Pandas - PullRequest
0 голосов
/ 18 июня 2020

Ввод:

    DEBIT             CREDIT                 
 0   10                20                   
 1   5                 30                                 
 2   6                 5                    

Ожидаемый результат:

    DEBIT             CREDIT                BALANCE 
 0   10                20                   10
 1   5                 30                   35              
 2   6                 5                    34

Я хочу сделать cumulative sum of difference of CREDIT and DEBIT column, чтобы получить столбец БАЛАНС . То есть

Balance(1st value) =  CREDIT(1st value) - DEBIT(1st value)
Balance(2nd value) = Balance(1st value) + CREDIT(2nd value) - DEBIT(2nd value)
Balance(3rd value) = Balance(2nd value) + CREDIT(3rd value) - DEBIT(3rd value)

1 Ответ

2 голосов
/ 18 июня 2020

Пример DataFrame:

df:

    C   D
0   1.0 4.0
1   1.0 2.0
2   3.0 2.0
3   3.0 7.0

Возьмите разницу между столбцом D и C, используя pd.diff() и сделайте накопительную сумму используя .cumsum()


df['bal'] = df.diff(axis=1).iloc[:,1].cumsum()

df:

    C   D   bal
0   1.0 4.0 3.0
1   1.0 2.0 4.0
2   3.0 2.0 3.0
3   3.0 7.0 7.0

Для данного DataFrame:

df['BALANCE'] = df[['DEBIT', 'CREDIT']].diff(axis=1).iloc[:,1].cumsum().astype(int)

df:

    DEBIT   CREDIT  BALANCE
0   10      20      10
1   5       30      35
2   6       5       34
...