首页 > 解决方案 > 处理数据框时出现 if 语句错误

问题描述

我有一列的值为负数和正数。如果值是负数,我想向它们添加 (24*60)。如果它们是肯定的,它们将保持不变。我写了下面的代码,但它抛出了一个错误:“一个系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all( )"

我尝试了 .any() 和 .all() 但它不起作用

    if df_da.loc[i,'Time_diff'] < 0 :
        df_da.loc[i, "Time_diff"]= df_da.loc[i, "Time_diff"]+(24*60)
    else:
        df_da.loc[i, "Time_diff"]= df_da.loc[i, "Time_diff"]

标签: pythonpandasnumpydataframe

解决方案


尝试这个

df_da["Time_diff"] = (df_da["Time_diff"] < 0)*(24*60) + df_da["Time_diff"]

这基本上会将 24 * 60 添加到所有为不等式返回 True 的行。这不会涉及外部的 for 循环,我假设有。


推荐阅读