Skip to main content
 首页 » 编程设计

python之在正值/负值上拆分列

2025年05月04日25Renyi-Fan

所以我遇到了另一个烦人的小问题,这是我学习 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)