如果导致系列的真值不明确的条件。使用 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() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误:系列的真值不明确 - Python pandas

关于 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()