将 pd.dataframe 中的任何负值转换为正值,但正值变为 NaN

Converting any negative values in pd.dataframe to positive, but the positive values become NaN

提问人:lingyau lee 提问时间:12/6/2022 最后编辑:lingyau lee 更新时间:12/6/2022 访问量:149

问:

我有一个pd.dataframe,如下所示。对于任何负值,我想添加 256 以使其成为正值。我的代码适用于这部分,但是其他 2 个正值变为 NaN,我不希望这样。我怎样才能只将 256 设置为负值并保持正数不变?非常感谢

我的熊猫数据帧 DFX:

red green  blue

0 72 101 -125

'''

dfx = dfx[dfx < 0] + 256

电流输出:

red green   blue

0 NaN NaN 131

期望输出:

red green  blue

0 72 101 131

Python 熊猫 nan boolean-logic

评论


答:

1赞 jezrael 12/6/2022 #1

使用 DataFrame.mask

dfx = dfx.mask(dfx < 0, dfx + 256 )
print (dfx)
   red  green  blue
0   72    101   131

您的解决方案应更改:

dfx[dfx < 0] += 256
print (dfx)
   red  green  blue
0   72    101   131