pd.cut()与pd.qcut()的区别
cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)需要将数据值分段并排序到bins中时使用cut。 此函数对于从连续变量转换为离散变量也很有用。 例如,cut可以将年龄转换为年龄范围组。 支持bins到相同数量的箱柜或预先指定的bins阵列。 x: 进行划分的一维数组 bins : 1,整数---将x划分为多少个等间距的区间
In[1]:pd.cut(np.array([0.2,1.4,2.5,6.2,9.7,2.1]),3,retbins=True)Out[1]: ([(0.19, 3.367], (0.19, 3.367], (0.19, 3.367], (3.367,6.533],
(6.533,9.7], (0.19, 3.367]] Categories (3, interval[float64]):
[(0.19,3.367] < (3.367, 6.533] < (6.533, 9.7]],array([ 0.1905 , 3.36666667, 6.53333333, 9.7 ]))
print(pd.cut(np.array([0.2,1.4,2.5,6.2,9.7,2.1]),3,retbins=False))
# [(0.19, 3.367], (0.19, 3.367], (0.19, 3.367], (3.367, 6.533], (6.533, 9.7],(0.19, 3.367]]Categories (3, interval[float64]):[(0.19, 3.367] < (3.367, 6.533] < (6.533, 9.7]]
2,序列—将x划分在指定的序列中,若不在该序列中,则是NaN
In[2]:pd.cut(np.array([0.2,1.4,2.5,6.2,9.7,2.1]),[1,2,3],retbins=True)Out[2]: ([NaN, (1, 2], (2, 3], NaN, NaN, (2, 3]]Categories(2, interval[int64]): [(1, 2] < (2, 3]], array([1, 2, 3]))
right : 是否包含右端点 labels : 是否用标记来代替返回的bins
In[3]:pd.cut([1,2,3,4],4,labels=['one','two','three','four'])Out[3]: [one, two, three, four]
Categories (4, object): [one <two < three < four]
retbins: 是否返回间距bins precision: 精度 include_lowest:是否包含左端点返回值:如果retbins = False 则返回x中每个值对应的bin的列表,否者则返回x中每个值对应的bin的列表和对应的bins
qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')基于分位数的离散化功能。 根据等级或基于样本分位数将变量分离为相等大小的桶。 例如,10个分位数的1000个值将产生一个分类对象,表示每个数据点的分位数成员资格。
两者的区别:
rng=np.random.RandomState(42)
factors = rng.randn(30)
print(factors)
print('='*30)
print(pd.cut(factors, 5).value_counts())
print('='*30)
print(pd.qcut(factors, 5).value_counts())
# (-1.917, -1.215] 4 # (-1.215, -0.516] 6 # (-0.516, 0.182] 10 # (0.182, 0.881] 7 # (0.881, 1.579] 3 # dtype: int64 # ============================== # (-1.914, -0.929] 6 # (-0.929, -0.464] 6 # (-0.464, -0.0559] 6 # (-0.0559, 0.506] 6 # (0.506, 1.579] 6 # dtype: int64
首先是观察上面的数据, 先分析qcut()函数:qcut(factors, 5),当你用qcut求五分之一时,将选择这些规则选择bins:使你在每个bins里有相同数量的记录。 你有30个记录,所以每个bin应该有6个(你的输出应该是这样的,尽管断点会因随机抽取而不同).这样就是结果中每个分组里面均有6个数存在的原因。 cut()函数:因为cut()会根据值本身而不是这些值的频率选择均匀分布的bins(在本例中直接将bins分成5份)。 因此,因为随机生成一个正态分布数据,你会看到靠近均值bins中的频率更高,外部更少。 这基本上是一个直方图的表格形式。 从上面的分析即可得出qcut()和cut()的区别。
pd.cut()与pd.qcut()的区别相关推荐
- 用pandas实现固定区间的数据频数统计(pd.cut,pd.Series)
搜罗了一圈,终于找到了能够实现目的的代码 目标:对一组序列进行频数的统计,画出来就像hist,不过我要的是每个bin和对应的数据而不是图,而生成固定区间,我好进行后面的比值对比 首先具有数据分类功能的 ...
- 数据合并中pd.merge()和pd.concat()区别
https://mp.weixin.qq.com/s?src=11×tamp=1619685662&ver=3037&signature=3fZ7EE4fw8Ddfe ...
- pandas中pd.cut()的功能和作用
pd.cut()的作用,有点类似给成绩设定优良中差,比如:0-59分为差,60-70分为中,71-80分为优秀等等,在pandas中,也提供了这样一个方法来处理这些事儿.直接上代码: import n ...
- cut与qcut的区别
cut与qcut的区别 GPF 大数据分析师 1 人赞同了该文章 python 在处理数据的时候调用的方法有cut,qcut,那这两种方法有什么不同呢? 两者功能相似,都是将一个Series切割成若干 ...
- 天池csv转成grt代码里的luna的csv,pandas库来操作csv文件(pd.DataFrame,pd.concat,pd.Series,to_csv等)实现
ps之前已经稍微处理过相关的csv文件,但是没有记录,发现基本忘光了看来记录还是一件非常重要的事情.碰巧DSB2017grt团队的代码里用的csv比较奇葩,我就把天池的数据的csv改成他们使用的模样. ...
- 使用 PD Recover 恢复 PD 集群
PD Recover 是对 PD 进行灾难性恢复的工具,用于恢复无法正常启动或服务的 PD 集群.该工具的详细介绍参见 TiDB 文档 - PD Recover.本文档介绍如何下载 PD Recove ...
- Python数据处理中 pd.concat 与 pd.merge 区别
背景 数据的合并与关联是数据处理过程中经常遇到的问题,在SQL.HQL中大家可能都有用到 join.uion all 等 ,在 Pandas 中也有同样的功能,来满足数据处理需求,个人感觉Pandas ...
- Python量化交易|pd.expanding() VS pd.rolling() 时间窗口函数区别图解
pandas.rolling()前文已经介绍过了,虫洞 pandas.expanding() 官方文档 pd.DataFrame.expanding(min_periods=1, center=Fal ...
- pd电源测试-PD电源自动测试系统ATECLOUD-Power
PD电源测试是一种重要的电源测试方法,采用该方法可以更加全面.详细地评估各种电子产品和设备的性能和安全性.本文将阐述PD电源测试的基本原理.测试对象以及测试的应用价值. 首先,PD电源测试的基本原理是 ...
最新文章
- TCP/UDP对比总结
- 深度|​揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活!
- Jquery 添听checkbox 是否选中
- win10+Tensorflow2 + cuda +RTX 3080 +cudnn 安装
- 计算机视觉——利用openCV与Socket结合进行远程摄像头实时视频传输并保存图片数据
- boost::gil::is_homogeneous用法的测试程序
- 升学在线如何从容应对流量高峰?
- [LintCode] Reverse Integer
- C	简单瞎搞题(牛客练习赛22)(bitset优化dp)
- Linux时间函数札记
- Android GMS 包。 GOOGLE play
- 一个非常好用的批量图片压缩工具
- android apk 微信登入_微信第三方登录(Android 实现)
- UEBA架构设计之路1
- IP地址和MAC 地址
- 【实战】PyTorch 在 CIFAR-10 数据集上的训练及测试过程
- 谷歌学术的搜索原理_谷歌搜索引擎产品的工作原理研究
- Biu~送你 20 个提供远程工作的网站,都很棒
- 单击选定单元格后输入新内容_Excel综合练习题
- 5e怎么绑定一键跳投_企业邮箱如何绑定微信?微信怎么添加邮箱?
热门文章
- C++ 中malloc函数详解(转载)
- 申请HTTPS需要哪些条件?如何申请?
- c51单片机c语言程序,C51单片机的C语言程序设计.ppt
- java 面试 接到邀请后你可以做哪些准备
- 本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql” Task06学习笔记
- 中国高频变频器及压缩机类负载应用市场发展态势及十si五战略规划建议报告2021-2027年
- #react#找不到模块“react/jsx-runtime”或其相应的类型声明。ts(2307)
- a标签download下载
- 谷歌Android无障碍套件,安卓无障碍套件下载-Android无障碍套件最新版下载v8.2.0.324286243_游戏369...
- 如何获取googletest测试套件