当前位置: 首页 > 知识库问答 >
问题:

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

贝阳泽
2023-03-14

我使用如果条件在python执行计算,但我得到的真值系列是含糊不清的。使用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

附件是代码和错误的图像

共有2个答案

柯轶
2023-03-14

您可以使用以下代码片段实现您想要的目标:

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

方通
2023-03-14

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

 类似资料: