Python datetime模块昼夜划分报错:Series真值歧义问题求解
Pandas布尔掩码逻辑判断报错修复
错误原因
你使用了Python原生的or运算符组合Pandas Series的布尔条件,但or是标量级逻辑运算符,它会试图将整个Series当作单一布尔值判断真假,而Pandas Series包含多元素,这种判断不明确,因此抛出The truth value of a Series is ambiguous错误。
Pandas需要用元素级逻辑运算符处理逐元素判断:
- 逻辑或:
| - 逻辑与:
& - 逻辑非:
~
正确代码
筛选夜间数据
nighttime = traffic[(traffic['date_time'].dt.hour >= 19) | (traffic['date_time'].dt.hour < 7)]
筛选白天数据(7:00-19:00)
daytime = traffic[(traffic['date_time'].dt.hour >= 7) & (traffic['date_time'].dt.hour < 19)]
注意:每个逻辑条件必须单独用括号包裹,避免运算符优先级导致的结果错误。
内容的提问来源于stack exchange,提问作者VIVEK SINGH GULIA
相关产品推荐
相关产品推荐

