python - 处理数据框时出现 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"]
解决方案
尝试这个
df_da["Time_diff"] = (df_da["Time_diff"] < 0)*(24*60) + df_da["Time_diff"]
这基本上会将 24 * 60 添加到所有为不等式返回 True 的行。这不会涉及外部的 for 循环,我假设有。
推荐阅读
- javascript - 如何优化包含重复值的组合?
- c# - .Net Core 3.0.100-preview6 - API Json 响应总是驼峰式,但我的课程不是
- c# - 显示复选框列表的不同名称
- mathematical-optimization - 如何通过元组从excel中使用n索引来修复读取变量?
- python - 我能够逐行阅读 txt,不确定现在如何搜索并用 X 替换特定字符串
- swift - 为什么不能使用协议(没有关联类型)类型作为类型别名来符合其他协议的关联类型?
- python - 替换列表中的项目
- tkinter - tkinter entry widgter 值在使用主帧交换类的帧之间传递
- xamarin - Xamarin Shell.BackgroundColor 错误
- javascript - 如何一次记录多个变量?