Python 索引时类型比较无效
我的数据框中有2列当前设置如下: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
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