时间:2021-05-22
pandas的qcut可以把一组数字按大小区间进行分区,比如
data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])比如我要把这组数据分成两部分,一半大的,一半小的,如果是小的数,值就变成'small number',大的数,值就变成'large number':
print(pd.qcut(data,[0,0.5,1],labels=['small number','large number']))small numbers large numbers small numbers small numbers small numbers large numbers small numbers large numbers large numbers small numbers large numbersdtype: categoryCategories (2, object): [small numbers < large numbers]qcut() 方法第一个参数是数据,第二个参数定义区间的分割方法,比如这里把数字分成两半,那就是 [0, 0.5, 1] 如果要分成4份,就是 [0, 0.25, 0.5, 0.75, 1] ,也可以不是均分,比如 [0, 0.1, 0.2, 0.3, 1] ,这就就会按照 1:1:1:7 进行分布,比如:
data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])print(pd.qcut(data,[0, 0.1, 0.2, 0.3, 1],labels=['first 10%','second 10%','third 10%','70%']))first 10% 70% first 10% 70% third 10% 70% second 10% 70% 70% 70% 70%dtype: category Categories (4, object): [first 10% < second 10% < third 10% < 70%]当然,这里因为数据里有11个数,没法刚好按照 1:1:1:7 分,所以 0和1,都被分到了 'first10%' 这一类.
qcut() 方法第二个参数是要替换的值,就是对应区间的值应该替换成什么值,顺序和区间保持一致就好了,注意有几个区间,就要给几个值,不能多也不能少.
qcut与cut的主要区别:
qcut:传入参数,要将数据分成多少组,即组的个数,具体的组距是由代码计算
cut:传入参数,是分组依据。具体见示例
1、qcut方法,参考链接:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.qcut.html
1).参数:pandas.qcut(x,q,labels=None,retbins=False,precision=3,duplicates='raise')
>>>x 要进行分组的数据,数据类型为一维数组,或Series对象
>>>q 组数,即要将数据分成几组,后边举例说明
>>>labels 可以理解为组标签,这里注意标签个数要和组数相等
>>>retbins 默认为False,当为False时,返回值是Categorical类型(具有value_counts()方法),为True是返回值是元组
2).举例
2.cut方法,官网链接:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.cut.html
1).参数:pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise')
2).举例
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python实现连续数据的离散化处理主要基于两个函数,pandas.cut和pandas.qcut,前者根据指定分界点对连续数据进行分箱处理,后者则可以根据指定
在python较新的版本中,pandas.qcut()这个函数中是有duplicates这个参数的,它能解决在等频分箱中遇到的重复值过多引起报错的问题;在比较旧
这篇文章主要介绍了pandas空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下方法一:直接删
方法一:用pandas辅助frompysparkimportSparkContextfrompyspark.sqlimportSQLContextimportp
对于pandas的dataframe,绘制直方图方法如下://pdf是pandas的dataframe,delta_time是其中一列//xlim是x轴的范围,