熊猫ValueError:索引数据帧时,系列的真值不明确

时间:2018-11-02 12:44:54

标签: python python-3.x pandas dataframe indexing

我正在尝试通过以下代码在数据帧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))]

但是,我得到了错误(下面是完整的追溯):

  

系列的真实价值不明确

为什么会发生这种情况,我该怎么解决?

enter image description here

2 个答案:

答案 0 :(得分:1)

分别将您的andor分别更改为&|

答案 1 :(得分:0)

对于使用Pandas系列进行布尔索引,您需要分别对 /“ or”条件使用按位 & / |运算符。为了提高可读性,您还可以将遮罩分为多个部分:

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)]