我正在尝试通过以下代码在数据帧outlier_locations
上应用布尔索引:
outlier_locations = month[(month.pickup_longitude != 0 and month.pickup_latitude != 0) & ((month.pickup_longitude <= -74.15) or (month.pickup_latitude <= 40.5774)or \
(month.pickup_longitude >= -73.7004) or (month.pickup_latitude>= 40.9176))]
但是,我得到了错误(下面是完整的追溯):
系列的真实价值不明确
为什么会发生这种情况,我该怎么解决?
答案 0 :(得分:1)
分别将您的and
和or
分别更改为&
和|
。
答案 1 :(得分:0)
对于使用Pandas系列进行布尔索引,您需要分别对&
/ |
运算符。为了提高可读性,您还可以将遮罩分为多个部分:
m1 = month[['pickup_longitude', 'pickup_latitude']].ne(0).all(1)
m2 = month['pickup_longitude'].le(-74.15)
m3 = month['pickup_latitude'].le(40.5774)
m4 = month['pickup_longitude'].ge(-73.7004)
m5 = month['pickup_latitude'].ge(40.9176)
outlier_locations = month[m1 & (m2 | m3 | m4 | m5)]