pandas数据分析库(十一):分箱操作

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等份