.describe() python_python的apply應用:一般性的“拆分-應用-合并”,附加詳細講解

5c0bc01627d19600c37384ddc2dce1f9.png

跟aggregate一樣,transform也是一個有著嚴格條件的特殊函數:傳入的函數只能產生兩種結果,要么產生一個可以傳播的標量值(如np.mean),要么產生一個相同大小的結果數組。最一般化的GroupBy方法是apply,apply會將待處理的對象拆分成多個片段,然后對各片段調用傳入的函數,最后嘗試將各片段組合到一起。

apply方法

舉例:根據分組選出最高的5個tip_pct值。

首先,編寫一個選取指定列具有最大值的行的函數。(原文比較拗口,其實就是“在 指定列找出最大值,然后把這個值所在的行選取出來。”)

In [1]: def top(df,n=5,column='tip_pct'):     ...: return df.sort_index(by=column)[-n:]     ...: 

新寫法:注意與上面的差別

In [2]: def top(df,n=5,column='計劃發出單量'):    ...: return df.sort_values(by=column)[-n:]    ...:In [3]: top(tips,n=6)Out[3]: total_bill  tip  smoker   day time  size tip_pct109   14.31       4.00 Yes      Sat Dinner 2   0.279525183   23.17       6.50 Yes      Sun Dinner 4   0.280535232   11.61      3.39 No      Sat Dinner 2   0.29199067    3.07       1.00 Yes     Sat Dinner 1   0.325733178   9.60       4.00 Yes     Sun Dinner 2   0.416667172   7.25       5.15 Yes     Sun Dinner 2   0.710345

如果對smoker分組并用該函數調用apply,就會得到:

46b247942c0d822a94fa4abff1a16642.png

top函數在DataFrame的各個片段上調用,然后結果由pandas.concat組裝到一起,并以分組名稱進行了標記。于是,最終結果就有了一個層次化索引,其內層索引值來自原DataFrame。

如果傳給apply的函數能夠接受其他參數或關鍵字,則可以將這些內容放在函數名后面一并傳入:

d1c59b174dd1751a91afd859b3aa4ba1.png

注意:除這些基本用法之外,能否充分發揮apply的威力很大程度上取決于你的創造力。傳入的那個函數能做什么全由你說了算,它只需返回一個pandas對象或標量值即可。本章后續部分的示例主要用于講解如何利用groupby解決各種各樣的問題。

在GroupBy對象上調用describe:

e3d753462bf1701908aaf204b68148f3.png
598a8049f76a41608250f5ac71cafc88.png

在GroupBy中,當調用諸如describe之類的方法時,實際上只是應用了下面兩條代碼的快捷方式而已:

f = lambda x: x.describe()

Grouped.apply(f)

禁止分組鍵:group_keys=False

分組鍵會跟原始對象的索引共同構成結果對象中的層次化索引。將group_keys=False傳入groupby即可禁止該效果:

df5cf1c060abefcab4f71571f9c19261.png

python好書推薦

推薦一本python好書,初學者和數據分析必備,小編已讀:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537563.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537563.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537563.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DNS服務(4)Slave DNS及高級特性

為了簡化運維人員的負擔,使用Master/Slave DNS架構的情況比較好,現在我們來簡單敘述一下Master/Slaver DNS的特點主DNS服務器:維護所負責解析的域內解析庫服務器;解析庫由管理員維護;從DNS服務器:從主DNS服務器或其它的…

python運算符_Python運算符總結

建議:字符串拼接操作盡量多用join,而減少用”“ join操作時會先計算字符操作所用到的空間總和大小,然后申請內存。然后進行字符串連接操作。所以join的時間復雜的近似O(n)。 操作符連接操作符時,由于字符串是不可變對象&#xff0…

jupyter notebook常用快捷鍵

Jupyter Notebook 有兩種鍵盤輸入模式。編輯模式,允許你往單元中鍵入代碼或文本;這時的單元框線是綠色的。命令模式,鍵盤輸入運行程序命令;這時的單元框線是灰色。 命令模式 (按鍵 Esc 開啟) Enter : 轉入編輯模式Shift-Enter : …

Eclipse安裝試用Hanlp

【1】確定正確安裝配置Java和Eclipse 【2】下載HanLp的各種東西 hanlp.linrunsoft.com/services.ht… 下載這四個文件到本地,我是放在桌面的一個文件夾了。【3】 把jar包導入到Eclipse 在Eclipse先新建一個項目File——New——Java Project--[名字:Hanlp…

升級pip最新版本

python很多庫對pip版本有要求,升級命令為: python -m pip install --upgrade pip windows在cmd下,輸入以上命令

bat 存儲過程返回值_使用Mybatis過程中遇到的坑

常規SSM框架開發中,mybatis遇到的坑是最多的,把以下幾點坑記錄下來防止以后再遇到同樣的情況。1、mybatis 若果在mapper中返回值沒有配置resultMap而是使用resultType直接返回的話,那么當心默認配置中的駝峰匹配規則,參考以下配置…

【洛谷 P2513】 [HAOI2009]逆序對數列(DP)

題目鏈接 這種求方案數的題一般都是\(dp\)吧。 注意到范圍里\(k\)和\(n\)的范圍一樣大,\(k\)是完全可以更大的,到\(n\)的平方級別,所以這暗示了我們要把\(k\)寫到狀態里。\(f[i][j]\)表示前\(1\)~\(i\)的排列逆序對數為\(j\)的方案數。 現在考…

think python下載 中文版開源!這或許是最經典的編程教材

《Think Python》是很多Python初學者的不二入門教材,受到廣泛好評。該書原作者是美國Olin工程學院的教授Allen B. Downey,目前該書的原版和中文版本都已免費開源。 中文版本譯者是一名自學Python的編程愛好者。選擇翻譯《Think Python》,一是…

datatable的數據進行組內排序_排序算法學習分享(四)希爾排序

排序,也稱為排序算法,可以說是我們學習算法的過程中遇到的第一個門檻,也是實際應用中使用得較為頻繁的算法,我將自己對所學的排序算法進行一個歸納總結與分享,如有錯誤,歡迎指正!排序算法學習分…

jupyter notebook 安裝代碼提示功能

效果 安裝成功后,輸入部分代碼,按 tab 鍵,會提示代碼 安裝步驟 1.安裝nbextensions 從國內的pip鏡像下載快 pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com jupyter_contrib_nbextensions jupyter contr…

轉:EL表達式的11個內置對象

原文地址&#xff1a;https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP內置的表達式語言 JSP2.0開始&#xff0c;不讓再使用Java腳本&#xff0c;而是使用EL表達式和動態標簽來代替Java腳本 ############EL替代的是<%... %>&#xff0c;也就是說EL只…

python需要配置環境變量嗎_python為什么會環境變量設置不成功

學習python編程&#xff0c;首先要配置好環境變量。本文主要講解python的環境變量配置&#xff0c;在不同版本下如何安裝 Windows 打開Python官方下載網站 https://www.python.org/downloads/release/python-370/ x86:表示是32位電腦 x86-64:表示是64位電腦 目前Python版本分為…

一維數組、二維數組、三維數組、四維數組、多維數組的理解

以圖書館來舉例 一維數組是一條線 二維數組是一頁紙 三維數組是一本書 四維數組是書架 五維數組是圖書室2201&#xff08;好幾個書架&#xff09; 六維數組是圖書館某一層&#xff0c;2樓/3樓&#xff0c;好幾個圖書室 七維數組是整個圖書館 第N維數組是宇宙..................…

線性篩

我就是我&#xff0c;一輩子都學不會線性篩的菜雞 一篇非常好的博客轉載于:https://www.cnblogs.com/yzxverygood/p/9907281.html

在資源使用狀況視圖中查看資源的負荷情況

只有工時類資源才會出現過度分配&#xff0c;因為工時類資源通常指組織內部的人力資源或者機械設備等&#xff0c;這些資源通常都有數量上的瓶頸&#xff0c;也只有工時類資源才會在【資源工作表】中設置它的最大單位和資源可用性&#xff0c;這就限制了它在不同時間段內的可用…

python常用單詞自由且開放_python常用英語單詞詞匯 unit7

1. Darcula IntelliJ IDEA自帶的黑色主題名稱&#xff0c;Android Studio是基于IntelliJ IDEA的。 2. Appearance /prns/ n. 外觀&#xff1b; 3. Custom /kstm/ n. 習慣&#xff1b; 4. UI abbr. 用戶界面&#xff08;user interface&#xff09; 5.Terminate /tmnet/ 終止、結…

2018.10.29-2018.11.4

簡述osi七層模型和TCP/IP五層模型應用層OSI 參考模型中最靠近用戶的一層&#xff0c;是為計算用戶提供應用接口&#xff0c;也為用戶直接提供網絡服務。常見的應用層網絡服務協議有&#xff1a;HTTP,HTTPS,FTP,POP3,SMTP等表示層表示提供各種用于應用層數據編碼和轉換功能&…

CSV文件轉Excel后數字自動轉換成科學計數法的解決方法

CSV文件用Excel打開后&#xff0c;長度超過11位的數字自動轉換成科學計數法顯示&#xff0c;末尾數字變成“0000”&#xff0c;如何解決這一問題&#xff1f; 以“老勞模系統數據.CSV”為例&#xff0c;身份證碼是科學計數法了 第一步&#xff1a;新建excel&#xff0c;用 off…

python 小說 云_python小說網站

廣告關閉 騰訊云11.11云上盛惠 &#xff0c;精選熱門產品助力上云&#xff0c;云服務器首年88元起&#xff0c;買的越多返的越多&#xff0c;最高返5000元&#xff01; python爬蟲之小說網站--下載小說(正則表達式)思路:1. 找到要下載的小說首頁,打開網頁源代碼進行分析(例:htt…

數據庫導出到excel解決科學計數法問題

用Navicat等工具導出數據到excel的時候&#xff0c;身份證等超過11位的數字會自動轉換成科學計數法&#xff0c;末尾數字變成“0000”。如何解決&#xff1f; 解決方式&#xff1a;給超過11位的數字末尾添加 \t 查詢的時候&#xff0c;給相關字段添加 \t SELECT name,CONCAT…