所以我遇到了另一个烦人的小问题,这是我学习 python 的第一步的另一个障碍。
我的结果列具有正/负/零值(赢、输、无 promise )。我想根据符号分成赢/输,零也会填充零,新赢利列中的负行;零将填充新损失列中的零和正行。
数据。
g=pd.DataFrame({'OUTCOME':[100,-100,400,-200,-200,-750,-250,1000,0,100,-100]},index=[1,1,2,2,2,3,3,3,4,4,4])
期望的输出。
g['WINNINGS']=[100,0,400,0,0,0,0,1000,0,100,0]
g['LOSS']=[0,100,0,200,200,750,250,0,0,0,100]
请您参考如下方法:
有不止一种方法可以做到这一点,但基本上您想要做的是应用一个函数,如果数字小于或等于零,则返回 0,否则返回输入数字。然后对损失做相反的事情。一种方法是:
def winnings(value):
return max(value, 0)
def losses(value):
return min(value, 0)
df["winnings"] = df["outcome"].map(winnings)
df["loss"] = = df["outcome"].map(losses)
