Python/Pandas - 屏蔽不将值返回到列

Python/Pandas - Mask not returning values back to column

首先post 堆叠,我相信有一个明显的答案。原谅我的过犯。

无论如何,我的问题是这样的:

我有包含 2 列的数据库。如果另一列的值满足某个值,我想更改一列的值(使其为负数)。基本上,如果第 2 列 (positive_p) 为“1”,则第 1 列(响应)应翻转为负数(在同一行中)。

我几乎尝试了所有方法(map、apply、lambda、iloc 和现在的 mask),但无论如何我总是得到相同的结果。在第 1 列中选择了正确的值,但它们返回为空白而不是负值。我在我的代码中包含了掩码,因为它似乎是最优雅的解决方案。我觉得好像在这里遗漏了一些明显的东西,但我似乎无法将其挑出来。任何帮助将不胜感激!

combo5['response'].mask(combo5['positive_p'] == 0, -1*combo5['response'], inplace=True)

print(combo5)

还不允许我嵌入,但这是显示缺少列值的输出。

Output

您可以使用布尔索引来完成此操作。

ix = combo5['positive_p'] == 1
combo5.loc[ix, 'response'] *= -1