python pd.qcut,pd.cut和pd.qcut
本文主要介绍python中pd.cut()和pd.qcut()的对比和例子。文章通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。
目录
1、pd.cut()2、pd.qcut()3、pd.cut() v.s. pd.qcut()
1、pd.cut()
用于根据值本身对数据值进行分段,并将其分类到箱中。
参数包括:x,bin,right,include _ lowest,labels,retbins,precision
x:分割后的数组
箱:划分的间隔/间隔数
-当bins为整数时,表示数组X被分成多少个等间距的区间;-当bins为序列时,表示数组X将被划分为指定的序列,否则输出NaN;# x=[1,2,3,5,3,4,1],箱数=3
[In ] pd.cut(np.array([1,2,3,5,3,4,1])
[Out] [(0.996,2.333),(0.996,2.333),(2.333,3.667),(3.667,5.0),(2.333,3.667),(3.667,5.0),(0.996,2.333]]
类别(3,区间[float64]): [(0.996,2.333] (2.333,3.667)(3.667,5.0])
# x=[1,2,3,5,3,4,1],箱=[1,2,3]
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),[1,2,3])
[Out][南,(1.0,2.0),(2.0,3.0),南,(2.0,3.0),南,南]
Categories (2,interval[int64]): [(1,2)(2,3]]
右:是否包含右终点;默认值为True;
Include_lowest:是否包含左端点,为False默认情况下;
# x=[1,2,3,5,3,4,1],bin=[1,2,3],默认值不包括左端点1,默认值包括右端点3。
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),[1,2,3])
[Out][南,(1.0,2.0),(2.0,3.0),南,(2.0,3.0),南,南]
Categories (2,interval[int64]): [(1,2)(2,3]]
# x=[1,2,3,5,3,4,1],bin=[1,2,3],设置包含左端点1,设置包含右端点3。
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),[1,2,3],include_lowest=True,right=False)
[Out] [[1.0,2.0],[2.0,3.0],楠,楠,楠,楠,[1.0,2.0]
类别(2,interval[int64]): [[1,2][2,3)]
标签:是否用标签替换返回的垃圾箱,默认值为False。如果需要标签,标签的数量要和箱柜的数量一致,要给标签分配一套列表;
# x=[1,2,3,5,3,4,1],bins=3,设置用指定标签[A , B , C]返回的序列
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),3,labels=[A , B , C])
[Out] [A,A,B,C,B,C,A]
类别(3,对象):
Retbins:是否返回间隔bins默认值为False,只返回x中每个值对应的bin列表;如果retbins=True,则返回容器列表和相应的容器。
# x=[1,2,3,5,3,4,1],bins=3,对应的bin序列将与设置一起返回。
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),3,retbins=True)
[Out] ([(0.996,2.333),(0.996,2.333),(2.333,3.667),(3.667,5.0),(2.333,3.667),(3.667,5.0),(0.996,2.333])
类别(3,区间[float64]): [(0.996,2.333] (2.333,3.667)(3.667,5.0]],
数组([0.996,2.33333333,3.6666667,5。]))
Precision: precision,为区间边界值保留的小数位数。
# x=[1,2,3,5,3,4,1],bins=3,精度为2。
[In ] pd.cut(np.array([1,2,3,5,3,4,1]),3,精度=2)
[Out] [(1.0,2.33),(1.0,2.33),(2.33,3.67),(3.67,5.0),(2.33,3.67),(3.67,5.0),(1.0,2.33]]
类别(3,区间[float64]): [(1.0,2.33)(2.33,3.67)(3.67,5.0])
2、pd.qcut()
基于分位数的离散化函数。根据秩或样本分位数(或样本值落在区间中的频率),变量被分成大小相等的桶。
参数包括:x、q、标签、重箱、精度、副本
x、labels、retbins、precision与pd.cut()中参数的用法一致;Q:将序列X分成Q个区间,使落在每个区间内的值个数一致;重复:重复值处理;默认值是duplicates= raise ,这意味着重复值不会被忽略。若要忽略x中的重复值,请指定duplicates= drop 。
3、pd.cut() v.s. pd.qcut()
Pd.cut()将指定序列X划分为指定数量的相等区间(均匀分布的bin是根据值本身而不是这些值的频率来选择的),或者pd.qcut()将指定序列X划分为Q个区间,使得落在每个区间内的记录数是一致的[in] ll=[1,2,3,5,3,4,1。
Print( - pd.cut()示例1-)
print(pd.cut(ll,4,precision=2)。value_counts())
Print( - pd.cut()示例2-)
print(pd.cut(ll,[1,2,4],precision=2)。value_counts())
Print( - pd.qcut()示例-)
print(pd.qcut(ll,4,precision=2)。value_counts())
[out]-PD.cut()示例1-
(1.0, 2.0] 4
(2.0, 3.0] 2
(3.0, 4.0] 1
(4.0, 5.0] 1
dtype: int64
- pd.cut()示例2-
(1, 2] 2
(2, 4] 3
dtype: int64
-PD . q cut()的示例-
(0.99, 1.75] 2
(1.75, 2.5] 2
(2.5, 3.25] 2
(3.25, 5.0] 2
dtype: int64
关于python中pd.cut()和pd.qcut()的对比和例子的文章到此为止。有关python pd.cut()和pd.qcut()的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。