列与几行之间的减法

时间:2019-09-24 19:54:43

标签: python pandas dataframe

我想揭露我的问题。我有一个这种类型的数据集,如下所示。我想在名为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 个答案:

答案 0 :(得分:2)

您可以通过对其中一行进行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列中减去此平移的列,您将从每行的当前余额中减去下一个下注。我添加了fillna(0),以确保您没有任何NaN的值。