我收到一条错误提示
ValueError:对于if,系列的真值不明确 条件。
具有以下功能:
for i , row in train_news.iterrows():
if train_news.iloc[:,0].isin(['mostly-true','half-true','true']):
train_news.iloc[:,0] = "true"
else :
train_news.iloc[:,0] = "false"
答案 0 :(得分:0)
问题出在您的if
语句中-
if train_news.iloc[:,0].isin(['mostly-true','half-true','true'])
考虑一下它的作用-
假设train_news.iloc[:,0]
看起来像这样-
mostly-true
not-true
half-true
现在,如果您执行train_news.iloc[:,0].isin(['mostly-true','half-true','true'])
,这将迭代检查列表['mostly-true','half-true','true']
中是否存在每个元素
因此,这将产生另一个pandas.Series
,看起来像这样-
True
False
True
python中的if
语句是一个简单的表达式,它期望一个bool
值,而您只是通过提供一堆布尔值来混淆它。因此,您最终需要根据自己的需要使用.all()
或.any()
(这些是通常要做的事情)