zoukankan      html  css  js  c++  java
  • pandas 的pd.cut()数据分箱

    pd.cut()是把一组数据按照一定bins分割成离散的区间

    #参数如下:
    pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')

    参数解释:

    x:被分割的数组数据,可以是df[col],np.array,还可以是pd.seres,list 但是数据必须是一维的

    bins:被分割后的区间,有三种形式,int值(如bins=5,就是将x平均分为5位),list或者np.array(如bins=[1,2,3],则将x按照(1,2],(2,3]分割),pandas.IntervalIndex 定义要使用的精确区间

    right:bool型参数,默认为True,表示是否包含区间右部

    labels:给分割后的区间打标签,但是labels的长度必须和分割后的区间的长度相等

    retbins:bool型的参数,表示是否将分割后的bins返回

    precision:保留区间小数点的位数,默认为3

    include_lowest:bool型的参数,表示区间的左边是开还是闭的,默认为false,也就是不包含区间左部(闭)

    duplicates:是否允许重复区间

    返回值:

    分割后每个值落在的区间

    import numpy as np
    import pandas as pd
    from sklearn.datasets import load_iris
    iris=load_iris()
    
    a=np.arange(1,100)  #np.array
    b=[i for i in range(1,100)]  #list
    df=pd.DataFrame(iris.data,columns=iris.feature_names)  #df
    ser=pd.Series(a)  #series
    tp=tuple(a)  #tuple
    
    pd.cut(a,5)
    pd.cut(b,5)
    pd.cut(df['sepal length (cm)'],5)
    pd.cut(ser,5)
    pd.cut(tp,5)

    运用各种参数

    #平均分为5分
    pd.cut(a,5)
    
    #按照给定区间划分
    pd.cut(a,bins=[0,10,20,40,60,100])
    
    #指定labels
    pd.cut(a,bins=[0,10,20,40,60,100],labels=["婴儿","青年","中年","壮年","老年"])
    
    #返回分割后的bins
    pd.cut(a,bins=[0,10,20,40,60,100],labels=["婴儿","青年","中年","壮年","老年"],retbins=True)
    
    #返回x中的数据位于第几个bin
    pd.cut(a,bins=[0,10,20,40,60,100],labels=False)
  • 相关阅读:
    HTML 基础 元素 标签
    HTML5 元素介绍
    网站程序 模板下载 下载 ftp
    域名解析和空间绑定
    如何选择云虚拟主机操作系统?
    网站备案查询
    响应式网站01
    项目中使用百度统计和友盟统计
    项目中使用http referer,为了盗取图片资源
    vue-awesome-swiper中的数据异步加载
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13323546.html
Copyright © 2011-2022 走看看