pandas数据分析库(十一):分箱操作
分箱操作就是将连续数据转换为分类对应物的过程。⽐如将连续的身⾼数据划分为:矮中⾼。
分箱操作分为等距分箱和等频分箱。
分箱操作也叫⾯元划分或者离散化。
import numpy as np
import pandas as pd
df = pd.DataFrame(data = np.random.randint(0,15,size = (100,3)),
columns=['Python','Math','En'])
df
等宽(cut)
#对python属性进行分箱,分4份
pd.cut(df.Python,bins=4)
pd.cut(df.Python, #分箱数据
bins=4, #分成4份
labels=['不及格','及格','中等','优秀']) #label 分箱标签
pd.cut(df.Python, #分箱数据
bins = 4, #分成4份
right = False # 左闭右开
# labels=['不及格','中等','良好','优秀'] # 分箱后分类
)
pd.cut(df.Python, #分箱数据
bins=4, #分成4份
# labels=['不及格','及格','中等','优秀'], # 分箱后分类
right = True #True右闭左开
)
pd.cut(df.Python,
bins=4, #分成4份
labels=['不及格','及格','中等','优秀'], # 分箱后分类
right = True #True右闭左开
)
#统计个等级出现的次数
pd.cut(df.Python,bins=4, #四份
labels=['不及格','及格','中等','优秀'], # 分箱后分类
right = True #True右闭左开
).value_counts()
pd.cut(df.Python,
bins=[0,30,60,90,120,150], #分箱断点 6个断点 5个标签
labels=['极差','不及格','及格','中等','优秀'] # 分箱后分类
)
df['等级'] = pd.cut(df.Python,
bins=[0,30,60,90,120,150], #分箱断点 6个断点 5个标签
labels=['极差','不及格','及格','中等','优秀'] # 分箱后分类
df
等频
pd.qcut(df.Python, #分箱数据
q=4 #分成4等份
)
df["等级"] = pd.qcut(df.Python,#分箱数据
q=4,#分成4等份