我正在使用“titanic.csv”https://www.kaggle.com/c/titanic/data,试图从年龄栏中找到青少年的存活率。我能够用
创建一个'under10'系列under10 = (titanic['Age'] < 10).map({True:'under 10', False:'over 10'})
under10_survived_1 = titanic.groupby(under10)['Survived'].mean()
但是当我尝试对青少年范围做同样的事情时,给出了错误。
teenager = (titanic['Age'] < 20 and titanic['Age'] > 10).map({True:'Teenager', False:'Not Teenager'})
teenager = (titanic['Age'] < 20 & titanic['Age'] > 10).map({True:'Teenager', False:'Not Teenager'})
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有关如何解决此问题的任何建议?
答案 0 :(得分:1)
为每个条件添加双()
,因为运算符优先级:
teenager = ((titanic['Age'] < 20) & (titanic['Age'] > 10))
.map({True:'Teenager', False:'Not Teenager'})
替代解决方案:
teenager = np.where((titanic['Age'] < 20) & (titanic['Age'] > 10)),'Teenager','Not Teenager')