999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

運用Python及Pandas庫分組統計“最值”記錄方法探討

2021-12-24 08:02:14徐文昭
內蒙古科技與經濟 2021年21期
關鍵詞:程序方法

徐文昭

(四川建筑職業技術學院,四川 德陽 618000)

近些年來,伴隨著網絡技術與云計算技術的蓬勃飛速發展,社會各個領域的數據匯聚到網絡中來,網絡數據時時刻刻呈現爆炸性增長,我們生活在數據的汪洋大海中,大數據時代已然到來。面對紛繁復雜、日益增長的海量數據,能夠從中發現并挖掘有規律、有價值的信息——數據分析處理,顯得越來越重要。Python因其語法簡單精練、擁有巨大且活躍的科學計算社區、強大的通用編程能力、人工智能時代可作為通用語言及可對接其他語言等優勢特性,成為數據分析處理的首要編程語言。作為Python一個重要的庫,Pandas是一款基于numpy、專門為了解決數據分析任務的工具,其間不僅納入了大量的庫和一些標準的數據模型,而且提供了高效操作大型數據集所需的工具,被廣泛應用到許多領域,包括經濟、統計和分析等學術及商業領域。

1 Pandas數據索引及切片概述

Python的Pandas庫里有兩個非常重要的數據結構:Series和DataFrame。其中,前者是一維的數據結構,后者是二維的、表格型的數據結構。我們可以把文件里的數據讀入程序進行處理,處理過程中涉及索引及切片操作。這兩種數據類型的對象都支持索引及切片操作,DataFrame對象的元素可以通過索引和切片來訪問和修改,就像Python內置的容器對象一樣。

從表面上來看,因為Series類對象屬于一維數據結構,它使用索引和切片的方式與NumPy數組索引和切片非常類似,但Series的索引值不只是整數。但對于DataFrame來說,索引和切片的使用方式就與列表大不一樣了。DataFrame結構不僅包含行索引,也包含列索引。其中,行索引是通過index屬性進行獲取的,列索引是通過columns屬性進行獲取的。DataFrame里每列數據都是一個Series對象,這樣,可以使用列索引進行獲取。其中有一種特別的索引——布爾型索引。布爾型索引指的是將一個其元素為布爾型數據的Series對象或DataFrame對象作為模板篩選數據,返回與模板中元素值為True位置對應的元素。

2 問題的提出

在一張Excel表里,存儲著若干行數據,分散記錄了各組員工工作的完成次數(具體如表1所示),現在要求分組統計篩選出各組完成次數最多的員工數據行。

表1 各組員工工作完成的次數

我們很可能不由自主地想到了Excel里的分類匯總以及數據透視功能。“分類匯總”是對同類別的數據進行統計匯總,是將相同類別的數據放在一起,然后進行求和、最大(小)值、計數和求平均值等匯總運算,是數據分析的重要手段,但是,如果借助Excel本身自帶的分類匯總以及數據透視功能來解決本文提出的問題,是無法完成這個任務的,它們只能呈現出各個類別(分組)的統計值,沒法給出統計值所在數據行的完整數據信息。據此,我們探討采用Python的Pandas庫來實現,可有兩種方法。

3 運用程序解決問題方法探討

Python的Pandas庫里有兩個非常重要的數據結構:Series和DataFrame。其中,前者是一維的數據結構,后者是二維的、表格型的數據結構。可以把數據表數據讀入程序以DataFrame類型表示,然后據此可以進行分組聚合以及篩選,最后形成最終結果。筆者調試實驗程序是在Jupyter Notebook上進行的。Jupyter Notebook(交互式筆記本)是一個支持實時代碼、數學方程、可視化和Markdown的Web應用程序,它支持四十多種計算機編程語言,對于數據分析來說,這個Web應用程序最大的優點是可以重現整個數據分析過程,并將說明文字、代碼、圖表、公式和結論都整合在一個文檔里面,用戶可以通過電子郵件(E-mail)、Dropbox、GitHub和Jupyter Notebook View將分析結果分享給其他人。

3.1 方法一:運用循環結構

import pandas as pd # 導入pandas庫

df = pd . read_excel ( ‘G : test1 . xlsx’) # 從存在盤上的Excel表讀取數據到程序,變量df的數據類型為DataFrame

dm = df . groupby (‘組別’) . max ( ) #按照“組別”分組并聚合數據,篩選出各組最大值

dmax = pd . DataFrame ( ) # 新建一個DataFrame變量,以保存符合條件的行數據

# 循環語句,以dm行索引“組別”和列索引“完成次數”與原始數據集df匹配,以篩選出符合條件的數據行

foriindm . index:

m = df [ ( df [‘組別’]==I ) & ( df [‘完成次數’] = = dm [‘完成次數’] [ i ] ) ]

dmax = dmax . append ( m )

dmax # 打印輸出結果數據集

運行該程序,得到各組完成次數最多的員工信息,如表2所示。

表2 各組完成次數最多的員工信息(方法一)

3.2 方法二:運用transform ( )方法

import pandas as pd #導入pandas庫

df = pd . read _ excel (‘ G : test1 . xlsx ’) #從存在盤上的Excel表讀取數據到程序,df的數據類型為DataFrame

dmax = df [df . groupby [‘組別’] . transform. max ( ) [‘完成次數’] = = df[‘完成次數’]]

dmax #打印輸出結果數據集

運行該程序,得到各組完成次數最多的員工信息,如表3所示。

表3 各組完成次數最多的員工信息(方法二)

可以看出,兩種方法運行程序得到的結果數據集是相同的,但相對方法一的程序,方法二里面的程序代碼非常短小精煉。該程序應用到了transform()方法。一般來說,在對數據集進行聚合運算的時候,返回的數據集的形狀(shape)與被分組數據集的形狀是不同的,也就是說,一般返回的數據集的數據行數量小于原來數據集的數據行數量。如果希望保持與原來的數據集形狀相同,那么可以通過transform()方法來實現。該方法的語法格式如下:

transform ( func , * args , ** kwargs )

上述方法中只有一個func參數,表示操作pandas對象的函數,比如,剛用到的max函數。transform()方法返回的結果有兩種:①可以在本組列上進行廣播的標量值(如max);②可以是與分組大小相同的結果數組。通過transform()方法操作分組時,transform()方法會把func函數應用到各個分組中,并且將結果放在適當的位置。如此,當進行篩選最值數據行時,不必使用循環遍歷,通過兩個等行數的數據集比較運算,得到等行數的新數據集,相應位置上的元素被賦予布爾類型的值,通過數據集的布爾索引,就獲得了最終的最值數據行形成的新數據集,這就是我們想要的結果集。

4 結論

數據處理分析是海量數據里尋找發現信息規律的重要手段。Pandas是一款基于numpy、專門為了解決數據分析任務的工具、作為Python的一個重要的庫,其間不僅納入了大量的庫和一些標準的數據模型,而且提供了高效操作大型數據集所需的工具,被廣泛應用到許多領域,包括經濟、統計和分析等學術及商業領域。筆者通過使用Python的Pandas庫的編程方式對結合數據分組統計“最值”記錄問題進行了研究,得出了優化的程序實現方法。通過研究發現,采用編程方式,運用具有專業的數據處理分析特長的Python語言及Pandas庫,能解決看似復雜的數據處理分析問題。我們應該重視一些看起來平凡無奇的方法,如transform()方法,如能被合理地運用,就可以減省大量程序代碼,讓程序更精煉強悍、運行起來效率更高。

猜你喜歡
程序方法
學習方法
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 免费看a级毛片| 国产av色站网站| 天天躁狠狠躁| 国产一区二区网站| 久久五月视频| 婷婷综合亚洲| 亚洲欧洲日韩综合色天使| 国产日韩精品欧美一区灰| 在线a网站| 欧美一级在线播放| 日本一区中文字幕最新在线| 天天综合天天综合| 国产亚洲精品自在线| 国产欧美日韩专区发布| 欧美成人一级| 亚洲美女高潮久久久久久久| 国产精品自在拍首页视频8| 国产成人精品亚洲77美色| 成人在线观看一区| 91福利片| 色哟哟色院91精品网站| 伊人久久婷婷五月综合97色| 丰满的少妇人妻无码区| 亚洲免费三区| 免费国产一级 片内射老| 亚洲精品在线影院| 99999久久久久久亚洲| 欧美日韩动态图| 成年女人a毛片免费视频| 2021最新国产精品网站| 国产欧美视频综合二区| 国内精品视频区在线2021| 欧美a网站| 麻豆精品在线| 亚洲天堂日韩在线| 久久精品视频亚洲| 亚洲精品人成网线在线| 91福利免费| 四虎国产成人免费观看| 成人免费视频一区| 精品福利视频网| 99久久精品国产自免费| 久久国产精品电影| 五月激情婷婷综合| 亚洲国内精品自在自线官| 国产成人亚洲无吗淙合青草| 欧美福利在线| 精品国产美女福到在线直播| 国产免费好大好硬视频| 亚洲精品桃花岛av在线| 亚洲IV视频免费在线光看| 无码精品一区二区久久久| 国产欧美视频一区二区三区| 国产精品2| 久久综合九色综合97婷婷| 久久国产黑丝袜视频| 久久影院一区二区h| 99资源在线| 国产亚洲欧美在线人成aaaa| 欧美日韩精品一区二区视频| 青青国产视频| 亚洲成aⅴ人在线观看| 福利视频一区| 久久精品人人做人人综合试看| 欧美中文字幕在线视频| 国产乱子伦手机在线| 亚洲AV无码一区二区三区牲色| 久久精品亚洲热综合一区二区| 国产精品视频猛进猛出| 91在线国内在线播放老师| 国产精品无码一二三视频| 亚洲AV无码乱码在线观看代蜜桃| 日韩A∨精品日韩精品无码| 午夜爽爽视频| 国产欧美视频在线观看| 日本91在线| 亚洲综合色区在线播放2019 | 亚洲国产欧美国产综合久久 | 欧美中文字幕第一页线路一| 伊人久久久久久久久久| 超碰91免费人妻| 五月婷婷亚洲综合|