我有一个Pandas Dataframe,如果一列中的布尔值为True,我想更改另一列中的值。
我有可以工作的代码,但是PyCharm给了我一个关于使用双引号来比较列值和布尔值的弱警告。
df.loc[df["boolColumn"] == True, "responseColumn"] = "Yes"
字符串
我得到一个微弱的警告说:
PEP 8: E712 comparison to True should be 'if cond is True:' or 'if cond:'
型
我将条件更改为
df.loc[df["boolColumn"] is True, "responseColumn"] = "Yes"
型
这样就消除了Pycharm中的警告,但是当我运行代码时,我得到一个错误,说:
KeyError: 'cannot use a single bool to index into setitem'
型
我知道我的原始代码工作,但我想知道,如果我的编码方式是不正确的,有一个正确的方式来做我想要的。
谢谢
2条答案
按热度按时间hs1ihplo1#
可以用
eq
方法替换==
操作符:字符串
iih3973s2#
您的原始代码可以工作,但为了简化它(并消除警告),您可以使用用途:
字符串
这直接使用布尔列作为索引,而不是与“True”进行比较。