Python 索引时类型比较无效

Python 索引时类型比较无效,python,pandas,Python,Pandas,我的数据框中有2列当前设置如下: A B True Morning True Morning False Morning False Morning 但希望B列在A列=False时显示“午后” A B True Morning True Morning False Afternoon False Afternoon 但是,这将返回以下错误消息。有什么想法吗 df = mask.i

我的数据框中有2列当前设置如下:

   A          B
True      Morning
True      Morning
False     Morning
False     Morning
但希望B列在
A列=False时显示“午后”

A          B
True      Morning
True      Morning
False     Afternoon
False     Afternoon
但是,这将返回以下错误消息。有什么想法吗

df = mask.ix[mask["A"] == "True" , "B"] = "Afternoon"
Anaconda3\lib\site-packages\pandas\core\ops.py:792: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  result = getattr(x, name)(y)
Traceback (most recent call last):

  File "<ipython-input-130-f98341f5041b>", line 1, in <module>
    df = mask.ix[mask["A"] == "True" , "B"] = "Afternoon"

  File "Anaconda3\lib\site-packages\pandas\core\ops.py", line 855, in wrapper
    res = na_op(values, other)

  File "Anaconda3\lib\site-packages\pandas\core\ops.py", line 794, in na_op
    raise TypeError("invalid type comparison")

TypeError: invalid type comparison
df=mask.ix[mask[“A”]=“True”,“B”]=“午后”
Anaconda3\lib\site packages\pandas\core\ops.py:792:FutureWarning:elementwise比较失败;而是返回标量,但将来将执行元素级比较
结果=getattr(x,name)(y)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
df=mask.ix[mask[“A”]=“True”,“B”]=“午后”
包装器中第855行的文件“Anaconda3\lib\site packages\pandas\core\ops.py”
res=na_op(值,其他)
文件“Anaconda3\lib\site packages\pandas\core\ops.py”,第794行,na_op
raise TypeError(“类型比较无效”)
TypeError:类型比较无效

在A列中,数据类型似乎是
bool
,但您正在将其与字符串进行比较(
“True”
)。去掉引号,它就可以正常工作了。此外,您可能希望切换到
.loc
而不是
.ix
,因为它很快就会被弃用

还要注意,当数据类型已经是
bool
时,您不需要执行
df['A']==True
df['A']==False
。您可以分别使用
df['A']
~df['A']

df.loc[~df['A'], 'B'] = 'Afternoon'

df
Out: 
       A          B
0   True    Morning
1   True    Morning
2  False  Afternoon
3  False  Afternoon