如果导致序列真值的条件不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

2024-06-03 03:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中使用if条件来执行计算,但是我得到的序列的真值是不明确的。使用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

附件是代码和错误的图像

enter image description here


Tags: 数据if错误any序列allitem条件
2条回答

您可以使用以下代码段实现所需的功能:

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

这条消息是不言自明的。由于simulated_hour['Weeknnd']不是单个值,因此术语simulated_hour['Weeknnd'] == 'Weekday'对于某些值可能为真,而对于其他值可能为假。因此,使用(...).any()(...).all()取决于您是否希望至少一个或所有值为true

相关问题 更多 >