Вычитание между столбцами и несколькими строками - PullRequest
1 голос
/ 24 сентября 2019

Я хотел бы раскрыть мою проблему.У меня есть набор данных этого типа, как вы можете видеть ниже.Я хотел бы добавить столбец в набор данных с именем balance_required_for_next_bet, это переменная, рассчитанная следующим образом:

(значение переменной 'balance' строки) - (значение переменной 'bet'следующая строка)

          Date      bet     current loss      current win    balance  
0   2016-08-20        8                8             0.00      -8.00       
1   2016-08-21       32               28            18.00     -18.00
2   2016-08-27       14               14             0.00     -32.00

вот пример нового столбца, который будет добавлен в набор данных с вычислением:

     balance required for next bet  (balance - next bet)
0           -8 - 32 ===> -40       
1          -18 - 14 ===> -32
2           -32 - 0 ===> -32

Спасибо за помощь.

1 Ответ

2 голосов
/ 24 сентября 2019

Вы можете сделать это с помощью операции shift в одной из строк.Например:

import pandas as pd

df = pd.DataFrame({'bet': [8, 32, 14], 'balance': [-8, -18, -32]})
df['next_bet'] = df.balance - df.bet.shift(-1).fillna(0)
#    bet  balance  next_bet
# 0    8       -8     -40.0
# 1   32      -18     -32.0
# 2   14      -32     -32.0

Смещение столбца df.bet на -1 эффективно перемещает каждую запись вверх строки.Вычитая этот смещенный столбец из столбца df.balance, вы вычитаете ставку next из текущего баланса 1014 * для каждой строки.Я добавляю fillna(0), чтобы убедиться, что вы не получаете значений NaN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...