首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直截了当的if语句正在获取ValueError:级数的真值是不明确的

直截了当的if语句正在获取ValueError:级数的真值是不明确的
EN

Stack Overflow用户
提问于 2020-01-08 18:05:38
回答 1查看 41关注 0票数 0

我有一段看似简单的代码,我在其中计算燃料电池运行的燃料水平。如果我逐行执行代码,我会得到有效的结果,但当我尝试运行整个条件语句时,我会得到"ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()“。我已经没有办法解决这个问题了,我们非常欢迎任何帮助。

代码语言:javascript
复制
fuel=pd.DataFrame()
if df3['DCS1'].tail(1)==1:
    fuel['fuel left']=56-(df3['Methanol consumed'].tail(1))
else:
    fuel['fuel left']=28-(df3['Methanol consumed'].tail(1))```
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-09 03:44:43

tail(1)返回一个只有一个元素的序列。将序列与标量进行比较会产生另一个True/False序列。第二个系列给您带来了麻烦:尽管它是单一元素,但pandas不想为您决定真实值。

您可以显式地生成真值:

代码语言:javascript
复制
if np.all(df3['DCS1'].tail(1)==1):
    # do things

或者提取列的最后一个元素作为标量:

代码语言:javascript
复制
if df['DCS1'].iloc[-1] == 1:
    # do things
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59643498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档