我有一段看似简单的代码,我在其中计算燃料电池运行的燃料水平。如果我逐行执行代码,我会得到有效的结果,但当我尝试运行整个条件语句时,我会得到"ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()“。我已经没有办法解决这个问题了,我们非常欢迎任何帮助。
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))```发布于 2020-01-09 03:44:43
tail(1)返回一个只有一个元素的序列。将序列与标量进行比较会产生另一个True/False序列。第二个系列给您带来了麻烦:尽管它是单一元素,但pandas不想为您决定真实值。
您可以显式地生成真值:
if np.all(df3['DCS1'].tail(1)==1):
# do things或者提取列的最后一个元素作为标量:
if df['DCS1'].iloc[-1] == 1:
# do thingshttps://stackoverflow.com/questions/59643498
复制相似问题