基于另一个包含布尔值的列更改Pandas Dataframe中一列的值(Pycharm弱警告)

jdg4fx2g  于 2024-01-04  发布在  PyCharm
关注(0)|答案(2)|浏览(136)

我有一个Pandas Dataframe,如果一列中的布尔值为True,我想更改另一列中的值。
我有可以工作的代码,但是PyCharm给了我一个关于使用双引号来比较列值和布尔值的弱警告。

  1. df.loc[df["boolColumn"] == True, "responseColumn"] = "Yes"

字符串
我得到一个微弱的警告说:

  1. PEP 8: E712 comparison to True should be 'if cond is True:' or 'if cond:'


我将条件更改为

  1. df.loc[df["boolColumn"] is True, "responseColumn"] = "Yes"


这样就消除了Pycharm中的警告,但是当我运行代码时,我得到一个错误,说:

  1. KeyError: 'cannot use a single bool to index into setitem'


我知道我的原始代码工作,但我想知道,如果我的编码方式是不正确的,有一个正确的方式来做我想要的。
谢谢

hs1ihplo

hs1ihplo1#

可以用eq方法替换==操作符:

  1. df.loc[df["boolColumn"].eq(True), "responseColumn"] = "Yes"

字符串

iih3973s

iih3973s2#

您的原始代码可以工作,但为了简化它(并消除警告),您可以使用用途:

  1. df.loc[df["boolColumn"], "responseColumn"] = "Yes"

字符串
这直接使用布尔列作为索引,而不是与“True”进行比较。

相关问题