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


谢谢您的帮助。

最佳答案

您可以对其中一行进行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值。

关于python - 列与几行之间的减法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58087328/

10-12 21:18