有人可以帮我对向量执行python三元运算的正确格式吗?我有两个数据框温度:df_today
和df_yesterday
。我正在尝试计算新列df_today
以确定温度是否比昨天高:
df["warmer_than_yesterday"] = 'yes, warmer' if df["temp_celsius"] > df_yesterday["temp_celsius"] and df["temp_celsius"] > 10 else 'nah, not warmer'
但是,我不断收到错误消息 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有人知道我可能做错了吗?
提前致谢!
首先,可以将您的if条件组合为一个np.maximum
(为了简洁)。还应该表现得更好。
m = df["temp_celsius"] > np.maximum(10, df_yesterday["temp_celsius"])
现在,将此面具传递给np.where
,
df["warmer_than_yesterday"] = np.where(m, 'yes', 'no')
或loc
设置切片:
df["warmer_than_yesterday"] = 'no'
df.loc[m, "warmer_than_yesterday"] = 'yes'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句