首页 > 解决方案 > Pandas 粗化分类变量

问题描述

假设我有一个具有以下值的分类变量,通过调用数据框中unique()的列给出:

Categories (7, object): [0-2, 6-8, 9-11, 3-5, 15-17, 12-14, 24-26]

并且我通过调用给出的每个类别都有以下事件value_counts()

0-2 209 3-5 34 6-8 17 9-11 7 15-17 6 12-14 3 24-26 1

将这些类别粗化/压缩成两个新类别“高”和“低”的好方法是什么?

标签: pythonpandascategorical-data

解决方案


这是使用pd.cut范围的正确值,并将它们分成两部分,您也可以使用qcut以获得不同的切割结果

groupkey=pd.cut(s.index.str.split('-').str[-1].astype(int),2,labels=['low','high'])
s.groupby(groupkey).sum()
low     270
high      7
Name: v, dtype: int64

推荐阅读