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