Pandas qcut和cut有何不同
在本文中,我们将介绍Pandas的两个函数——qcut和cut,并讨论它们之间的不同之处。
阅读更多:Pandas 教程
pandas.cut和pandas.qcut的基本概念
pandas.cut和pandas.qcut两个函数都是用于将连续数据分组成离散数据,经常用于数据分析和数据挖掘中。
pandas.cut是基于值的分割,它将数据分成一些连续的区间。我们可以指定区间的个数或其它划分方式。例如,如果我们要将一个100分的分数划分成5组,则可以将每组的范围设置为0-20分,20-40分,40-60分,60-80分和80-100分。
pandas.qcut是基于频率的分割,它将数据分成大小接近的组。我们可以选择一个区间,然后将数据切割成等频率的组。例如,如果我们要将100分的分数分成5组,则可以根据每组中的观测值数来切割分区。
cut()函数用法
pandas.cut以给定的bins数组分割数字数据。bins数组指定分组的边界。每个分组的边界被指定为左侧闭合(包括)和右侧开放(不包括)数字值。
以下是一个示例:
运行结果:
上述演示将年龄分成了三个组,每个年龄组的范围都不同。在年龄组中,可以看到最年轻的人是在第一个年龄组(5岁),最年长的人在第三个年龄组(85岁)。
qcut()函数用法
pandas.qcut按各值出现频率的百分比计算等大小的桶。从而“平均”分配数据集,而不是基于每个数据点的值均等地分割数据。其参数和cut()函数的参数基本相同。
以下是一个示例:
运行结果:
上述示例将体重分为3组,并生成具有相同频率的组。可以看到,最轻的体重在第一组中,最重的体重在第三组中。由于每个组中的观察值数相等,因此第一组中有三个观测值(60、65和70),第二组中有两个观测值(75和80),第三组中有三个观测值(85、90和95)。
cut()函数和qcut()函数的不同之处
pandas.cut和pandas.qcut两个函数存在一些不同之处。首先,它们的参数不同。pandas.cut基于值的分割,需要指定bin的数量或bin的范围。而pandas.qcut基于频率的分割,需要指定分位数数量。
其次,它们的结果不同。pandas.cut返回n个bin,每个bin的大小相等。而pandas.qcut返回n个bin,每个bin中包含的观测值数相等。
综上所述,pandas.cut和pandas.qcut都是将连续数据分组成离散数据的常用函数。它们各有异同,需要根据具体情况选择使用哪一个函数。
总结
本文介绍了Pandas的两个分组函数——pandas.cut和pandas.qcut。我们讨论了它们的基本概念、用法和不同之处。pandas.cut是基于值的分割,pandas.qcut是基于频率的分割。pandas.cut将数据分成一些连续的区间,pandas.qcut将数据分成大小相等的组。需要根据具体的应用场景选择使用哪个函数。