Dataframe traversing python - PullRequest
       0

Dataframe traversing python

0 голосов
/ 30 ноября 2018

Данные для банковского счета

accntid    transcode    transamt balance
1            Credit        20      4000
1            Debit         50
1            Credit        80
2            Debit         60      5000
2            Credit        40
2            Debit         120
2            Credit        130

Привет, ребята. У меня есть данные с данными выше, и я хочу обновить баланс на основе кода транзакции и суммы транзакции в следующей строке.Любая идея, как я могу перемещаться туда и обратно на Dataframe

1 Ответ

0 голосов
/ 30 ноября 2018

IIUC:

df1 = df.assign(transamt = np.where(df['transcode'] == 'Debit',-1,1) * df['transamt'])

df1['balance1'] = (df1.balance
                    .fillna(df1.groupby('accntid', group_keys=False)
                               .apply(lambda x: x.balance.fillna(df1.transamt).cumsum())))

print(df1)

Выход:

   accntid transcode  transamt  balance  balance1
0        1    Credit        20   4000.0    4000.0
1        1     Debit       -50      NaN    3950.0
2        1    Credit        80      NaN    4030.0
3        2     Debit       -60   5000.0    5000.0
4        2    Credit        40      NaN    5040.0
5        2     Debit      -120      NaN    4920.0
6        2    Credit       130      NaN    5050.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...