python pd.cut,
本文主要介绍python使用pd.cut()和pd.qcut()对数据进行分箱。通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。让我们和边肖一起学习。
00-1010 1.Cut()可以实现类似成绩优秀统计的功能。让我们看看代码示例。2.qcut()可以生成指定数量的盒子,然后使每个盒子的数据量相同。
目录
如果我们有一组学生的成绩,我们需要把他们分为不及格(0-59),及格(60-70),良好(71-85),优秀(86-100)。此时可以使用cut()。
将numpy作为np导入
进口熊猫作为pd
#我们先传30个从0到100的随机数到分数。
分数=np.random.uniform(0,100,大小=30)
#然后使用np.round()函数控制数据精度
分数=np.round(分数,1)
#指定框的间隔。
等级=[0,59,70,85,100]
cuts=pd.cut(分数,等级)
打印( nscores: )
打印(分数)
打印( ncuts: )
打印(剪切)
#我们还可以算出每个盒子里有多少数据
打印( ncats.value_counts: )
打印(pd.value_counts(cuts))
======output:======
分数:
[ 6.50.8 80.2 22.1 60.1 75.1 30.8 50.8 81.6 17.4 13.4 24.3 67.3 84.4
63.4 21.3 17.2 3.7 40.1 12.4 15.7 23.1 67.4 94.8 72.6 12.8 81.82.
70.2 54.1]
切割:
[(0, 59], (0, 59], (70, 85], (0, 59], (59, 70], (0, 59], (70, 85], (70, 85], (70, 85], (0, 59]]
长度: 30
Categories (4,interval[int64]): [(0,59)(59,70)(70,85)(85,100])
cuts.value_counts:
(0, 59] 17
(70, 85] 8
(59, 70] 4
(85, 100] 1
dtype: int64
默认情况下,cat()的音程划分是左开右闭。你可以通过right=False来改变哪边是封闭的。
代码示例:
cuts=pd.cut(分数,等级,右=假)
您也可以通过向labels选项传递一个列表或数组来传递自定义框名。
代码示例:
Group_names=[失败,通过,良好,优秀]
cuts=pd.cut(分数、等级、标签=group_names)
当我们不需要自己定义区间时,就需要根据数据中的最大值和最小值来计算等长的盒子。
代码示例:
#将分数平均分在四个方框中,precision=2选项会将精度控制在两位数。
cuts=pd.cut(分数,4,精度=2)
1.cut()可以实现类似于对成绩进行优良统计的功能,来看代码示例。
代码示例:
将numpy作为np导入
进口熊猫作为pd
#正态分布
data=np.random.randn(100)
#分成四个盒子
cuts=pd.qcut(data,4)
打印( ncuts: )
打印(剪切)
打印( ncuts.value_counts: )
打印(pd.value_counts(cuts))
======output:======
切割:
[(-0.745, -0.0723], (0.889, 2.834], (-0.745, -0.0723], (0.889, 2.834], (0.889, 2.834], (-0.745, -0.0723], (-0.0723, 0.889], (-3.1599999999999997, -0.745], (-0.745, -0.0723], (-0.0723, 0.889]]
长度: 100
类别(4,区间[float 64]):[(-3.159999999999997,-0.745] (-0.745,-0.0723)(-0.0723,0.889]
(0.889, 2.834]]
cuts.value_counts:
(0.889, 2.834] 25
(-0.0723, 0.889] 25
(-0.745, -0.0723] 25
(-3.1599999999999997, -0.745] 25
dtype: int64
关于python用pd.cut()和pd.qcut()对数据进行宁滨操作的这篇文章到此为止。关于python pd.cut()和pd.qcut()的宁滨操作的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。