错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
Posted
技术标签:
【中文标题】错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()【英文标题】:Error: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() 【发布时间】:2019-12-19 20:51:15 【问题描述】:我在界面 PYQT5 中遇到以下错误
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
出现错误的代码是
x = data.drop('DrainStatnumout',axis='columns')
y = data['DrainStatnumout']
data.Failuer = data.Failuer.astype(int)
#xx = data.drop(['Assembly1_Availability','Assembly2_Availability',
#'LaserCutting_Availability','Failuer','DrainStatnumout'],axis='columns')
#print(xx)
X=pd.DataFrame(x)
Y=pd.DataFrame(y)
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.20)
plt.figure()
ax1 = sns.distplot(Y_predict)
ax2 = sns.distplot(Y_test)
plt.axvline(np.mean(Y_predict), color='b', linestyle='dashed', linewidth=5)
plt.axvline(np.mean(Y_test), color='orange', linestyle='dashed', linewidth=5)
#plt.savefig('dist1.png',dpi=200,orientation='portrait')
plt.savefig('DecisionTreeClassifier2.png')
ValueError Traceback (most recent call last)
<ipython-input-1-e0a00ff7678b> in pushButton_2_handler(self)
588 ax2 = sns.distplot(Y_test)
589 plt.axvline(np.mean(Y_predict), color='b', linestyle='dashed', linewidth=5)
--> 590 plt.axvline(np.mean(Y_test), color='orange', linestyle='dashed', linewidth=5)
591 #plt.savefig('dist1.png',dpi=200,orientation='portrait')
592 plt.savefig('DecisionTreeClassifier2.png')
任何意见表示赞赏
【问题讨论】:
如果您使用错误消息进行搜索,您应该会获得足够的结果,让您了解问题可能是什么。包括Y_test
的最小示例 - 但我看不出该行如何产生错误。 - 请提供minimal reproducible example。
在此处查看有关错误的更多信息:***.com/questions/36921951/…。试着做 np.mean(Y_test) 看看是否有错误。
MjH np.mean(Y_test) 工作正常并给出 wright 输出值。说真的,我对这个错误感到困惑。它在界面外工作正常。
首先您可以检查变量中的内容 - print( np.mean(Y_predict) )
和 print( np.mean(Y_test) )
。此错误主要表示:"I expect one value but you give me many values. I don't know what to do with this. Use a.empty, a.bool(), a.item(), a.any() or a.all() to give me one value."
我在 pyqt5 中有 print(np.mean(Y_test)) 和 print(np.mean(Y_predict))。 np.mean(Y_predict) 给我一个值 43.110236220472444 但 np.mean(Y_test) 给我 DrainStatnumout 42.551181。数据类型:float64。 Strangly 在 python 上运行良好。
【参考方案1】:
我已取出 pd.data 框架并解决了问题。
X = data.drop('DrainStatnumout',axis='columns')
Y = data['DrainStatnumout']
data.Failuer = data.Failuer.astype(int)
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.20)
plt.figure()
ax1 = sns.distplot(Y_predict)
ax2 = sns.distplot(Y_test)
plt.axvline(np.mean(Y_predict), color='b', linestyle='dashed', linewidth=5)
plt.axvline(np.mean(Y_test), color='orange', linestyle='dashed', linewidth=5)
#plt.savefig('dist1.png',dpi=200,orientation='portrait')
plt.savefig('DecisionTreeClassifier2.png')
【讨论】:
以上是关于错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:在将 lambda 与 loc 一起使用时,Series 的真值不明确 [重复]
pandas 错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
DataFrame 列比较引发 ValueError:Series 的真值不明确。 [复制]
If-else ValueError Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
为啥我会收到 ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()