向量上的Python三值运算
有人能帮我介绍向量上python三元操作的正确格式吗?我有两个数据帧温度:向量上的Python三值运算,python,vector,ternary,Python,Vector,Ternary,有人能帮我介绍向量上python三元操作的正确格式吗?我有两个数据帧温度:df\u今天和df\u昨天。我正在尝试计算一个新的列,以确定今天的温度是否比昨天高: df[“比昨天暖和”]=“是的,暖和”如果df[“温度摄氏”]>df\u昨天[“温度摄氏”]和df[“温度摄氏”]>10其他“不,不暖和” 然而,我不断得到错误ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 有人知道我可能做错了什么吗 提前谢谢 首先,您
df\u今天
和df\u昨天
。我正在尝试计算一个新的列,以确定今天的温度是否比昨天高:
df[“比昨天暖和”]=“是的,暖和”如果df[“温度摄氏”]>df\u昨天[“温度摄氏”]和df[“温度摄氏”]>10其他“不,不暖和”
然而,我不断得到错误ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。
有人知道我可能做错了什么吗
提前谢谢 首先,您可以使用
np.max
(为了简洁起见)将if条件组合成一个条件。也应该更有效
m = df["temp_celsius"] > np.maximum(10, df_yesterday["temp_celsius"])
现在,将此掩码传递到np。其中
df["warmer_than_yesterday"] = np.where(m, 'yes', 'no')
或者,到loc
设置切片:
df["warmer_than_yesterday"] = 'no'
df.loc[m, "warmer_than_yesterday"] = 'yes'