【发布时间】:2019-06-26 13:24:54
【问题描述】:
我正在研究纽约市房地产销售数据集(https://www.kaggle.com/new-york-city/nyc-property-sales)。
有一列“BUILDING CLASS CATEGORY”,它有几个不同的分类字符串值。我想要做的是只选择出现次数最多的前 4 个类别,并将其余的值组合成一个。 例如-
> dataset["BUILDING CLASS CATEGORY"].value_counts()
01 ONE FAMILY DWELLINGS 12686
10 COOPS - ELEVATOR APARTMENTS 11518
02 TWO FAMILY DWELLINGS 9844
13 CONDOS - ELEVATOR APARTMENTS 7965
09 COOPS - WALKUP APARTMENTS 2504
03 THREE FAMILY DWELLINGS 2318
07 RENTALS - WALKUP APARTMENTS 1743
所以我想要的是前 4 个类别的所有实例都替换为一些整数值,例如
01 ONE FAMILY DWELLINGS instances are replaced by 0
10 COOPS - ELEVATOR APARTMENTS instances are replaced by 1
02 TWO FAMILY DWELLINGS instances are replaced by 2
13 CONDOS - ELEVATOR APARTMENTS instances are replaced by 3
all the other instances are replaced by integer 4
所以下次我运行命令时,它应该输出如下内容:
> dataset["BUILDING CLASS CATEGORY"].value_counts()
0 12686
1 11518
2 9844
3 7965
4 6565 #sum of all the other instances
我尝试过使用 LabelEncoder,但我的方法太长了,所以如果有有效的方法可以做到这一点,请告诉我。
【问题讨论】:
-
你为什么要给他们贴标签..?
标签: python-3.x pandas