如果导致系列的真值不明确的条件。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all() [重复]
Posted
技术标签:
【中文标题】如果导致系列的真值不明确的条件。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all() [重复]【英文标题】:if condition resulting in The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() [duplicate] 【发布时间】:2021-04-22 06:23:09 【问题描述】:我在 python 中使用 if 条件来执行计算,但我得到了 Series 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。错误
有人可以帮助我了解如何根据其他列上的 if 条件 对数据框执行操作吗?
if (simulated_hour['Weeknnd'] == 'Weekday'):
simulated_hour['simulated'] = simulated_hour['Forecast_call']*simulation_weekday
simulated_hour
附上代码和错误的图片
【问题讨论】:
【参考方案1】:消息不言自明。由于simulated_hour['Weeknnd']
不是单个值,术语simulated_hour['Weeknnd'] == 'Weekday'
对于某些值可能为真,而对另一些值可能为假。因此,请使用(...).any()
或(...).all()
,具体取决于您是否希望至少一个或所有值都为真。
【讨论】:
【参考方案2】:你可以用下面的代码sn-p实现你想要的:
simulated_hour.loc[simulated_hour['Weeknnd'] == 'Weekday', 'simulated'] = simulated_hour.loc[simulated_hour['Weeknnd'] == 'Weekday', 'Forecast_call']*simulation_weekday
Pandas 有自己的查询语法,因为您不能使用简单的 if
语句来进行您提到的选择。
如果您熟悉 SQL,以下状态可能有助于理解基础:https://pandas.pydata.org/docs/getting_started/comparison/comparison_with_sql.html
【讨论】:
以上是关于如果导致系列的真值不明确的条件。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
关于 colab - class_weight 导致 ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
如何解决 Python Pandas 中的“系列的真值不明确。使用 an.empty、a.bool()、a.item()、a.any() 或 a.all()”? [复制]
无法删除数据框 python 3 中的行。值错误:真值不明确
If-else ValueError Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()