3.4 分箱操作
🚩分箱操作就是将连续数据转换为分类对应物的过程。比如将连续的身高数据划分为:矮中高。
分箱操作分为等距分箱和等频分箱。
分箱操作也叫面元划分或者离散化。
我们先来创建数据:
import numpy as np import pandas as pd df = pd.DataFrame(data = np.random.randint(0, 150, size = (100, 3)), columns = ['Python', 'Tensorflow', 'Keras']) df
3.4.1 等宽分箱
🚩等宽分箱在实际操作中意义不大,因为我们一般都会给一个特定的分类标准,比如高于 60 是及格,等分在生活中应用并不多
# bins = 3 表示把 Python 成绩划分成三份 pd.cut(df.Python, bins = 3)
3.4.2 指定宽度分箱
🚩下述代码就实现了自行定义宽度进行分箱操作,在下述带啊中,不及格是[ 0 , 60 ) ,中等是 [60,90),良好是[90,120),优秀是[120,150)均为左闭右开,这个是由 right = False
设定的
pd.cut(df.Keras, #分箱数据 bins = [0, 60, 90, 120, 150], # 分箱断点 right = False, # 左闭右开 labels=['不及格', '中等', '良好', '优秀'])# 分箱后分类
3.4.3 等频分箱
🚩等频分箱是按照大家的普遍情况进行等分的操作
pd.qcut(df.Python,q = 4, # 4等分 labels=['差', '中', '良', '优']) # 分箱后分类