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.pswp.cn/news/391740.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391740.shtml
英文地址,請注明出處:http://en.pswp.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…