首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas qcut返回,而bin在左侧边界显示不一致。

Pandas是一个开源的数据分析和数据处理工具,qcut是Pandas中的一个函数,用于将数据分成指定数量的相等大小的区间。当使用qcut函数时,有时会出现bin在左侧边界显示不一致的情况。

这个问题通常是由于数据中存在边界值的重复导致的。qcut函数在将数据分成区间时,会根据数据的分布情况来确定每个区间的边界值。如果数据中存在重复的边界值,那么在确定边界值时就会出现不一致的情况。

为了解决这个问题,可以使用参数duplicates='drop'来删除重复的边界值。这样,在确定边界值时就会忽略重复的值,从而保证bin在左侧边界显示的一致性。

下面是一个示例代码:

代码语言:txt
复制
import pandas as pd

# 创建一个包含重复边界值的数据
data = [1, 2, 3, 4, 5, 5, 6, 7, 8, 9]
# 使用qcut函数,并设置duplicates='drop'
result = pd.qcut(data, 5, duplicates='drop')

print(result)

输出结果为:

代码语言:txt
复制
[(0.999, 3.0], (0.999, 3.0], (3.0, 4.0], (4.0, 5.0], (4.0, 5.0], (4.0, 5.0], (5.0, 7.0], (7.0, 8.0], (8.0, 9.0]]
Categories (5, interval[float64]): [(0.999, 3.0] < (3.0, 4.0] < (4.0, 5.0] < (5.0, 7.0] < (7.0, 8.0] < (8.0, 9.0]]

在这个示例中,我们使用了包含重复边界值的数据,并设置了duplicates='drop'参数。结果中的bin在左侧边界显示的一致性得到了保证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 浅谈pandas.cut与pandas.qcut的使用方法及区别

    3.labels, 4.retbins 5.precisoon 6.duplicates 结果中超过边界的值将会变成NA demo: pd.qcut(range(5), 4) .....然后,qcut() 函数中设置duplicates参数为“drop”(不能设置为“raise”),解决(如下)。 ? 本次纠错背景,来源于互金领域信用风控建模中的变量分箱处理。...中使用qcut(),边界易出现重复值,如果为了删除重复值设置 duplicates=‘drop',则易出现于分片个数少于指定个数的问题 d2 = d1.groupby('Bucket', as_index...删除后发现没有解决问题,真正解决问题是qcut()函数中没有设置duplicates参数为“drop”(不能设置为“raise”) data=data.drop_duplicates(subset=None...与pandas.qcut的使用方法及区别就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.3K50

    基于python 等频分箱qcut问题的解决

    python 较新的版本中,pandas.qcut()这个函数中是有duplicates这个参数的,它能解决等频分箱中遇到的重复值过多引起报错的问题; 比较旧版本的python中,提供一下解决办法...: import pandas as pd def pct_rank_qcut(series, n): ''' series:要分箱的列 n:箱子数 ''' edages = pd.series...([i/n for i in range(n)] # 转换成百分比 func = lambda x: (edages = x).argmax() #函数:(edages = x)返回fasle/...等频离散化 pandas中有qcut()可以使用,但是边界易出现重复值,如果为了删除重复值设置 duplicates=‘drop’,则易出现于分片个数少于指定个数的问题,因此在此处不使用qcut() import...numpy as np import pandas as pd # Discretization: Equal Frequency # # vector: single feature def Rank_qcut

    3.9K30

    初学者使用Pandas的特征工程

    pandas具有两个对变量进行分箱的功能,即cut() 和qcut() 。 qcut() : qcut是基于分位数的离散化函数,它试图将bins分成相同的频率组。...让我们尝试使用qcut函数对大型超市的Item_MRP变量进行装箱: #name of groups groups = ['Low', 'Med', 'High', 'Exp'] data['Item_MRP_Bin_qcut...'] = pd.qcut(data['Item_MRP'], q=4, labels=groups) data[['Item_MRP', 'Item_MRP_Bin_qcut']].head() ?...使用qcut函数,我们的目的是使每个bin中的观察数保持相等,并且我们没有指定要进行拆分的位置,最好仅指定所需的bin数。 case cut函数中,我们显式提供bin边缘。...用于文本提取的apply() pandas的apply() 函数允许pandas系列上传递函数并将其传递到变量的每个点。 它接受一个函数作为参数,然后将其应用于数据框的行或列。

    4.8K31

    如何使用Python创建美观而有见地的图表

    目前的工作流程 最终决定使用Pandas原生绘图进行快速检查,并使用Seaborn生成要在报表和演示文稿中使用的图表(视觉上很重要)。...pip install matplotlib==3.1.0 """ 快速:使用Pandas进行基本绘图 Pandas具有内置的绘图功能,可以Series或DataFrame上调用它。...大多数情况下,用它来澄清图表中显示的内容,以便当回到图表上时,可以快速确定发生了什么。title需要一个字符串。 bins:允许覆盖直方图的bin宽度。...每个这些图中,中心图(散点图,双变量KDE和hexbin)有助于理解两个变量之间的联合频率分布。此外,中心图的右边界和上边界,描绘了各个变量的边际单变量分布(作为KDE或直方图)。...在外排显示的是一年范围,在外排显示的是人均GDP,在内排显示的是感知的腐败程度,内排则为各洲。我们看到,幸福感朝着右上角增加(即人均GDP高和感知腐败低)。

    3K20

    万字长文 | 超全代码详解Python制作精美炫酷图表教程

    人生阶梯分布的方框图显示平均值5.5左右,范围为3~8。...此外,中心图的右边界和上边界,描述了各自变量的边际单变量分布(用KDE或直方图表示)。...Seaborn双标图,散点图、二元KDE和Hexbin图都在中心图中,边缘分布中心图的左侧和顶部。 散点图 散点图是一种可视化两个变量联合密度分布的方法。...它的作用类似于盒状图,显示了定量数据分类变量之间的分布,以便对这些分布进行比较。...Facet热图,外层的行显示一年内,外层的列显示人均GDP,内层的行显示政治清廉,内层的列显示大洲。我们看到幸福指数朝着右上方向增加(即,高人均GDP和高政治清廉)。

    3.1K10

    盘一盘 Python 特别篇 22 - 分箱之 cut

    当要给连续数值型数据分箱成几个组,我们可以使用上贴介绍的 qcut 函数,也可以使用本贴介绍的 cut 函数。...两者的区别是: qcut 分组后保证每组含有的数据几乎一样多,每组的边界会被反算出来 cut 自定义每组的边界,每组组含有的数据个数不同 首先引入要用到的工具包: import pandas as...cut 实际案例中,可通过业务规则定义箱。就拿新加坡航空公司飞行会员计划,25,000 英里是银卡 (silver) 50,000 英里是金卡 (gold),并且它不会根据数据的年度变化变化。...如果我们要定义箱边界 (25,000, 50,000),我们就不能使用 qcut 而是 cut 了,因为后者可以自定义箱边界。 首先将数据分成四个箱,注意每个箱的上界和下界之差为 32,265。...需要注意的是,使用 interval_range() 函数时,参数 labels 的设置被忽略了。

    98620

    绘制频率分布直方图的三种方法,总结的很用心!

    # pandas.cut() 也同样是一个方便的方法,用来将数据进行强制的分箱 # 将一系列数值分成若干份 #cut()方法,参数bin指明切分区间,左开右闭区间。...,"青年组","中青年组","中年组","中老年组"] groups=pd.cut(ages,bins=bins,labels=labels) data=groups.value_counts() #qcut...# pd.qcut(ages,6).value_counts() df1=DataFrame(data,columns=["病例数"]) plt.subplot(1,1,1) x=labels y=df1...Python实现histogram方法 #生成直方图 # count_elements() 返回了一个字典,字典里的键值对:所有数值出现的频率次数。...9)、align:设置条形边界的对齐方式,默认mid,另外left和right。 10)、orientation:设置直方图的摆放方向,默认vertical垂直方向。

    36.3K42

    收藏 | 提高数据处理效率的 Pandas 函数方法

    “room_type”这一列来进行处理 pd.factorize(df['room_type']) 结果返回的是元组形式的数据,由两部分组成,其中的第一部分是根据离散值映射完成后的数字,另一部分则是具体的离散值数据...: 将第一列的给去掉 我们将它与源数据进行合并的话 df.join(pd.get_dummies(df['room_type'])) 03 pandas.qcut() 有时候我们需要对数据集中的某一列进行分箱处理...例如我们把学生年龄按15岁划分成一组,0-15岁的叫做少年,16-39岁的叫做青年,31-45岁的叫做壮年。...Pandas”模块当中也有相对应的方法来实现分箱操作。...Julia Computing 获 2400 万美元融资,前 Snowflake CEO 加入董事会 芯片开发语言:Verilog 左,Chisel 右 深度学习实现场景字符识别模型|代码干货

    62320

    数据清洗与准备(3)

    过滤缺失值(点此跳转) (2)补全缺失值(点此跳转) 2 数据转换 (1)删除重复值(点此跳转) (2)使用函数或映射进行数据转换(点此跳转) (3)替代值(点此跳转) (4)重命名轴索引 重命名轴索引可以不生成新的数据的情况下修改轴...0 1 2 3 Orange 4 5 6 7 Banana 8 9 10 11 以上修改都是生成一个对象,如果想要修改原有数据集,仅需函数加一个参数...(25, 35]] Length: 12 Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]] 返回了一个...它是依据样本分位数分箱;使用cut通常不会使每一组有相同数量的数据点,qcut基于样本分位数分箱,可以保证每个组的数量相等: data = np.random.rand(1000) #从-1~1随机取...在下一章将会介绍pandas的数据连接和联合等功能。

    50820

    【python】数据挖掘分析清洗——离散化方法汇总

    import pandas as pdemb_dummies_df = pd.get_dummies(data['会计准则'],prefix=data[['会计准则']].columns[0])#prefix...train_data['Fare_bin'] = pd.qcut(train_data['Fare'],5) #5是指分成五份#自定义范围划分bins = [0,59,70,80,100]df['Categories...位# qcut是另一个分箱相关的函数, 基于样本分位数进行分箱。...取决于数据的分布,使用cut不会使每个箱子具有相同数据数量的数据点,qcut,使用# 样本的分位数,可以获得等长的箱data3 = np.random.randn(1000) # 正太分布cats...提高预测准确性:一些场景下,离散化后的数据可以更好地揭示变量之间的关系,提高模型的预测准确性。例如,信用评分模型中,将收入分成若干个等级可以更好地捕捉收入与违约率之间的非线性关系。

    53630

    一日一学--如何对数值型特征进行分桶

    要从计数映射到bin,取计数的log值。 对数变换是处理具有重尾分布的正数的有力工具。(重尾分布尾部范围内的概率比高斯分布的概率大)。...它将分布高端的长尾压缩成较短的尾部,并将低端扩展成较长的头部。...0-99 之间的随机整数 small_counts = np.random.randint(0, 100, 20) # 进行分箱操作, 通过对数据除以 10 分到 0-9 总共 9 个箱里, # 返回的结果就是对应数据应该划分到的箱的编号...pandas.DataFrame.quantile 和 pandas.Series.quantile 用于计算分位数。pandas.qcut 将数据映射到所需数量的分位数。...64011, 80, 3, 725, 867, 2215, 7689, 11495, 91897, 44, 28, 7971, 926, 122, 22222] # 将数据映射到所需数量的分位数 pd.qcut

    8.8K30

    3种特征分箱方法

    消除特征变量的量纲影响,因为分箱之后都是类别数,例如:0,1,2… 能够在一定程度上减少异常值的影响,对异常数据有很强的鲁棒性 模拟数据 模拟一份简单的数据和收入INCOME相关 In [1]: import pandas...等宽分箱的边界查看: In [7]: dis.bin_edges_ Out[7]: array([array([ 0., 50., 100., 150.])], dtype=object) In [...8]: dis.n_bins Out[8]: 3 等频分箱 等频分箱指的是每个区间内包含的取值个数是相同的,和等宽分箱的区别: 等频分箱:每个区间内包括的值一样多,pd.qcut 等宽分箱:每两区间之间的距离是一样的...In [14]: dis.bin_edges_ # 分箱边界 Out[14]: array([array([ 0., 20., 50., 150.])], dtype=object) In [15...In [20]: dis.bin_edges_ # 分箱边界 Out[20]: array([array([ 0.

    51730
    领券