pandas之cut

cut( )用来把一组数据分割成离散的区间。

cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
# x:被切分的数据,必须是一维
# bins:①int型整数:将x按照数值大小平均分成分成bins份,x的范围在最左侧和最右侧分别扩展0.1%以包括最大值和最小值#②标量序列:自定义分组的每个区间,此时严格按照给定的区间分割,x最左和最右不扩展#③pandas.IntervalIndex
# right:布尔值,默认为True,表示分割后包含区间右侧值不包含左侧值,False表示分割后包含左侧值不包括右侧值
# labels:分组后bins的标签,默认为None显示分割后属于的区间
# retbins:返回结果中是否包括bins,一般bins参数使用整数时
# precision:保留的小数点位数,默认为3
# include_lowest:如果自定义标量序列分组,第一个区间是否包含左侧最小值
# duplicates:是否允许区间重复

 

bins设置为整数,将一维数组平均分为5份

arr = np.array([1,77,10,89,36,12,58,62,5,40,32,18,20,25,30,100])
c = pd.cut(arr,5,precision=1)
print(c)
# [(0.9, 20.8], (60.4, 80.2], (0.9, 20.8], (80.2, 100.0], (20.8, 40.6], ..., (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], (80.2, 100.0]]
# Length: 16
# Categories (5, interval[float64]): [(0.9, 20.8] < (20.8, 40.6] < (40.6, 60.4] < (60.4, 80.2] < (80.2, 100.0]]

系统自动根据数组中数值的大小将原数据平均分为5分,每个区间间隔为19.8。整个区间的起点为(1,100],由于右侧包含了100因此最大区间的最大值无需扩展,而由于不包括1,因此最小区间的最小值需向左扩展0.1% * 100 = 0.1,即1-0.1 = 0.9。

设置retbins=True,会将分割区间以数组形式显示出来,这个参数一般在bins设置为整数时使用,因为其他bins两种方式都是自定义了这个区间。

arr = np.array([1,5,10,40,36,12,58,62,77,89,100,18,20,25,30,32])
c = pd.cut(arr,5,precision=1,retbins = True)
print(c)
# ([(0.9, 20.8], (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], ..., (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], (20.8, 40.6]]
# Length: 16
# Categories (5, interval[float64]): [(0.9, 20.8] < (20.8, 40.6] < (40.6, 60.4] < (60.4, 80.2] < (80.2, 100.0]], \
# array([ 0.901, 20.8 , 40.6 , 60.4 , 80.2 , 100. ]))

 

bins自定义分组序列,并指定lables

c = pd.cut(arr,bins = [1,5,18,35,50,100],labels = ['幼儿','少年','青年','中年','老年'],precision=1)
print(c)
# [NaN, 老年, 少年, 老年, 中年, ..., 少年, 青年, 青年, 青年, 老年]
# Length: 16
# Categories (5, object): [幼儿 < 少年 < 青年 < 中年 < 老年]

上述示例的意思是,将原数组按照1-5、5-18、18-35、35-50、50-100(左开右闭)的区间进行划分,划分后分别对应幼儿、少年、青年、中年、老年。

但是由于默认为左开区间所以无法将最小值划到一个给定的区间(如果设置right=False则最大值无对应区间),因此原数组中的第一个数1返回的是NaN,可以设置参数include_lowest=True,则可将最小是包含进去。

c = pd.cut(arr,bins = [1,5,18,35,50,100],labels = ['幼儿','少年','青年','中年','老年'],precision=1,include_lowest=True)
print(c)
# [幼儿, 老年, 少年, 老年, 中年, ..., 少年, 青年, 青年, 青年, 老年]
# Length: 16
# Categories (5, object): [幼儿 < 少年 < 青年 < 中年 < 老年]

 

 

上述例子的返回结果包含三项,第一项是每个数属于哪个区间,第二个是原数组长度,第三个是Category对象

如果只想显示第一项、即数组中的每个值属于哪个区间,可设置为labels = False

c= pd.cut(arr,bins = [1,5,18,35,50,100],labels=False,include_lowest=True)
print(c)
# [0 0 1 3 3 1 4 4 4 4 4 1 2 2 2 2]

 

转载于:https://www.cnblogs.com/Forever77/p/11342851.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为Tueri.io构建React图像优化组件

Let’s face it, image optimization is hard. We want to make it effortless.面对现实吧&#xff0c;图像优化非常困难。 我们希望毫不费力。 When we set out to build our React Component there were a few problems we wanted to solve:当我们开始构建React组件时&#…

红黑树分析

红黑树的性质&#xff1a; 性质1&#xff1a;每个节点要么是黑色&#xff0c;要么是红色。 性质2&#xff1a;根节点是黑色。性质3&#xff1a;每个叶子节点&#xff08;NIL&#xff09;是黑色。性质4&#xff1a;每个红色节点的两个子节点一定都是黑色。不能有两个红色节点相…

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)

上一节我们在 host1 中运行了容器 bbox1&#xff0c;今天将详细讨论 overlay 网络跨主机通信的原理。 在 host2 中运行容器 bbox2&#xff1a; bbox2 IP 为 10.0.0.3&#xff0c;可以直接 ping bbox1&#xff1a; 可见 overlay 网络中的容器可以直接通信&#xff0c;同时 docke…

第 132 章 Example

这里介绍一个负载均衡放置问题&#xff0c;我们可以把它摆放在任何位置&#xff0c;每种方案都各有优缺点&#xff0c;需要根据你的实际情况选择使用 适用于HAProxy / Nginx / LVS 等等 这里用web,db为例子&#xff0c;讲述负载均衡之间的关系 132.1. 双负载均衡的用法 User --…

Python:实现图片裁剪的两种方式——Pillow和OpenCV

原文&#xff1a;https://blog.csdn.net/hfutdog/article/details/82351549 在这篇文章里我们聊一下Python实现图片裁剪的两种方式&#xff0c;一种利用了Pillow&#xff0c;还有一种利用了OpenCV。两种方式都需要简单的几行代码&#xff0c;这可能也就是现在Python那么流行的原…

第一个应在JavaScript数组的最后

by Thomas Barrasso由Thomas Barrasso 第一个应在JavaScript数组的最后 (The first shall be last with JavaScript arrays) So the last shall be [0], and the first [length — 1].所以最后一个应该是[0] &#xff0c;第一个[length_1]。 – Adapted from Matthew 20:16–根…

鼠标移动到ul图片会摆动_我们可以从摆动时序分析中学到的三件事

鼠标移动到ul图片会摆动An opportunity for a new kind of analysis of Major League Baseball data may be upon us soon. Here’s how we can prepare.不久之后&#xff0c;我们将有机会对美国职棒大联盟数据进行新的分析。 这是我们准备的方法。 It is tempting to think t…

leetcode 1052. 爱生气的书店老板(滑动窗口)

今天&#xff0c;书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客&#xff08;customers[i]&#xff09;会进入书店&#xff0c;所有这些顾客都会在那一分钟结束后离开。 在某些时候&#xff0c;书店老板会生气。 如果书店老板在第 i 分钟生气&#xf…

回到网易后开源APM技术选型与实战

篇幅一&#xff1a;APM基础篇\\1、什么是APM?\\APM&#xff0c;全称&#xff1a;Application Performance Management &#xff0c;目前市面的系统基本都是参考Google的Dapper&#xff08;大规模分布式系统的跟踪系统&#xff09;来做的&#xff0c;翻译传送门《google的Dappe…

持续集成持续部署持续交付_如何开始进行持续集成

持续集成持续部署持续交付Everything you need to know to get started with continuous integration: branching strategies, tests automation, tools and best practices.开始进行持续集成所需的一切&#xff1a;分支策略&#xff0c;测试自动化&#xff0c;工具和最佳实践。…

51nod 1073约瑟夫环

思路传送门 &#xff1a;http://blog.csdn.net/kk303/article/details/9629329 n里面挑选m个 可以递推从n-1里面挑m个 然后n-1里面的x 可以转换成 n里面的x 的公式 x &#xff08;xm&#xff09;%n; #include <bits/stdc.h> using namespace std;int main () {int n,m;s…

如何选择优化算法遗传算法_用遗传算法优化垃圾收集策略

如何选择优化算法遗传算法Genetic Algorithms are a family of optimisation techniques that loosely resemble evolutionary processes in nature. It may be a crude analogy, but if you squint your eyes, Darwin’s Natural Selection does roughly resemble an optimisa…

robot:截图关键字

参考&#xff1a; https://www.cnblogs.com/hong-fithing/p/9656221.html--python https://blog.csdn.net/weixin_43156282/article/details/87350309--robot https://blog.csdn.net/xiongzaiabc/article/details/82912280--截图指定区域 转载于:https://www.cnblogs.com/gcgc/…

leetcode 832. 翻转图像

给定一个二进制矩阵 A&#xff0c;我们想先水平翻转图像&#xff0c;然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。例如&#xff0c;水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。 反转图片的意思是图片中的 0 全部被 1 替换&#xff…

SVN服务备份操作步骤

SVN服务备份操作步骤1、准备源服务器和目标服务器源服务器&#xff1a;192.168.1.250目标服务器&#xff1a;192.168.1.251 root/rootroot 2、对目标服务器&#xff08;251&#xff09;装SVN服务器&#xff0c; 脚本如下&#xff1a;yum install subversion 3、创建一个新的仓库…

SpringCloud入门(一)

1. 系统架构演变概述 #mermaid-svg-F8dvnEDl6rEgSP97 .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-F8dvnEDl6rEgSP97 .label text{fill:#333}#mermaid-svg-F8dvnEDl6rEgSP97 .node rect,#merm…

PullToRefreshListView中嵌套ViewPager滑动冲突的解决

PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部添加到ListView中&#xff0c;发先ViewPager在滑动过程中流畅性太差几乎很难左右滑动。在网上也看了很多大神的介绍&#xff0c;看了ViewP…

神经网络 卷积神经网络_如何愚弄神经网络?

神经网络 卷积神经网络Imagine you’re in the year 2050 and you’re on your way to work in a self-driving car (probably). Suddenly, you realize your car is cruising at 100KMPH on a busy road after passing through a cross lane and you don’t know why.想象一下…

数据特征分析-分布分析

分布分析用于研究数据的分布特征&#xff0c;常用分析方法&#xff1a; 1、极差 2、频率分布 3、分组组距及组数 df pd.DataFrame({编码:[001,002,003,004,005,006,007,008,009,010,011,012,013,014,015],\小区:[A村,B村,C村,D村,E村,A村,B村,C村,D村,E村,A村,B村,C村,D村,E村…

开发工具总结(2)之全面总结Android Studio2.X的填坑指南

前言&#xff1a;好多 Android 开发者都在说Android Studio太坑了&#xff0c;老是出错&#xff0c;导致开发进度变慢&#xff0c;出错了又不知道怎么办&#xff0c;网上去查各种解决方案五花八门&#xff0c;有些可以解决问题&#xff0c;有些就是转来转去的写的很粗糙&#x…