首页 > 解决方案 > 布尔值选择错误

问题描述

我有一个名为no_borough街道信息的数据集。

我试图只选择出现不止一次的街道。当我运行时no_borough['ON STREET NAME'].value_counts() > 1,我产生以下内容:

BELT PARKWAY                         True
LONG ISLAND EXPRESSWAY               True
BROOKLYN QUEENS EXPRESSWAY           True
GRAND CENTRAL PKWY                   True
FDR DRIVE                            True
                                    ...  
HARVEST AVENUE                      False
6th Ave                             False
W 23rd St                           False
CRYDERS LANE                        False
WINFIELD STREET                     False
Name: ON STREET NAME, Length: 4890, dtype: bool

但是当我尝试使用这个布尔值进行选择时,使用

no_borough[(no_borough['ON STREET NAME'].value_counts() > 1) == True]

我收到一个

ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

当我尝试

no_borough[no_borough['ON STREET NAME'].value_counts() > 1]

我收到一个

IndexingError:作为索引器提供的不可对齐的布尔系列(布尔系列的索引和索引对象的索引不匹配)。

执行此选择的正确方法是什么?

标签: pythonpandasselectboolean

解决方案


一种方法是;

no_borough['ON STREET NAME'].value_counts()[lambda x:x>1]

或者使用duplicated()

no_borough[no_borough['ON STREET NAME'].duplicated()]

推荐阅读