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