Pandas?Groupby之在Python中匯總、聚合和分組數(shù)據(jù)的示例詳解
GroupBy是一個(gè)非常簡(jiǎn)單的概念。我們可以創(chuàng)建一個(gè)類(lèi)別分組,并對(duì)這些類(lèi)別應(yīng)用一個(gè)函數(shù)。這是一個(gè)簡(jiǎn)單的概念,但它是一種在數(shù)據(jù)科學(xué)中廣泛使用的非常有價(jià)值的技術(shù)。在真實(shí)的的數(shù)據(jù)科學(xué)項(xiàng)目中,您將處理大量數(shù)據(jù)并一遍又一遍地嘗試,因此為了提高效率,我們使用Groupby概念。Groupby概念非常重要,因?yàn)樗軌蛴行У貐R總、聚合和分組數(shù)據(jù)。
匯總
匯總包括統(tǒng)計(jì),描述數(shù)據(jù)幀中存在的所有數(shù)據(jù)。我們可以使用describe()方法總結(jié)數(shù)據(jù)框中的數(shù)據(jù)。此方法用于從數(shù)據(jù)幀中獲取min、max、sum、count值沿著該特定列的數(shù)據(jù)類(lèi)型。
- describe():此方法詳細(xì)說(shuō)明數(shù)據(jù)類(lèi)型及其屬性。
dataframe_name.describe()
- unique():此方法用于從給定列中獲取所有唯一值。
dataframe[‘column_name].unique()
- nunique():這個(gè)方法類(lèi)似于unique,但它會(huì)返回唯一值的計(jì)數(shù)。
dataframe_name[‘column_name].nunique()
- info():此命令用于獲取數(shù)據(jù)類(lèi)型和列信息
- columns:此命令用于顯示數(shù)據(jù)框中存在的所有列名
示例:
# importing pandas as pd for using data frame import pandas as pd # creating dataframe with student details dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033], 'name': ['sravan', 'manoj', 'aditya', 'bhanu'], 'Maths_marks': [99, 97, 88, 90], 'Chemistry_marks': [89, 99, 99, 90], 'telugu_marks': [99, 97, 88, 80], 'hindi_marks': [99, 97, 56, 67], 'social_marks': [79, 97, 78, 90], }) # display dataframe dataframe
# describing the data frame print(dataframe.describe()) print("-----------------------------") # finding unique values print(dataframe['Maths_marks'].unique()) print("-----------------------------") # counting unique values print(dataframe['Maths_marks'].nunique()) print("-----------------------------") # display the columns in the data frame print(dataframe.columns) print("-----------------------------") # information about dataframe print(dataframe.info())
聚合
聚合用于獲得數(shù)據(jù)幀中所有列或數(shù)據(jù)幀中特定列的均值、平均值、方差和標(biāo)準(zhǔn)差。
- sum():返回?cái)?shù)據(jù)幀的和
dataframe[‘column].sum()
- mean():返回?cái)?shù)據(jù)框中特定列的平均值
- std():返回該列的標(biāo)準(zhǔn)差。
- var():返回該列的方差
- min():返回列中的最小值
- max():返回列中的最大值
示例:
# importing pandas as pd for using data frame import pandas as pd # creating dataframe with student details dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033], 'name': ['sravan', 'manoj', 'aditya', 'bhanu'], 'Maths_marks': [99, 97, 88, 90], 'Chemistry_marks': [89, 99, 99, 90], 'telugu_marks': [99, 97, 88, 80], 'hindi_marks': [99, 97, 56, 67], 'social_marks': [79, 97, 78, 90], }) # display dataframe dataframe
# getting all minimum values from # all columns in a dataframe print(dataframe.min()) print("-----------------------------------------") # minimum value from a particular # column in a data frame print(dataframe['Maths_marks'].min()) print("-----------------------------------------") # computing maximum values print(dataframe.max()) print("-----------------------------------------") # computing sum print(dataframe.sum()) print("-----------------------------------------") # finding count print(dataframe.count()) print("-----------------------------------------") # computing standard deviation print(dataframe.std()) print("-----------------------------------------") # computing variance print(dataframe.var())
分組
它用于通過(guò)使用groupby()方法對(duì)數(shù)據(jù)幀中的一個(gè)或多個(gè)列進(jìn)行分組。Groupby主要是指涉及以下步驟中的一個(gè)或多個(gè)的過(guò)程:
- 拆分:這是一個(gè)通過(guò)對(duì)數(shù)據(jù)集應(yīng)用某些條件將數(shù)據(jù)拆分成組的過(guò)程。
- 應(yīng)用:它是一個(gè)過(guò)程,在這個(gè)過(guò)程中,我們將一個(gè)函數(shù)獨(dú)立地應(yīng)用于每個(gè)組
- 組合:這是一個(gè)在應(yīng)用groupby后將不同數(shù)據(jù)集組合在一起并生成數(shù)據(jù)結(jié)構(gòu)的過(guò)程
# importing pandas as pd for using data frame import pandas as pd # creating dataframe with student details dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033], 'name': ['sravan', 'manoj', 'aditya', 'bhanu'], 'Maths_marks': [99, 97, 88, 90], 'Chemistry_marks': [89, 99, 99, 90], 'telugu_marks': [99, 97, 88, 80], 'hindi_marks': [99, 97, 56, 67], 'social_marks': [79, 97, 78, 90], }) # group by name print(dataframe.groupby('name').first()) print("---------------------------------") # group by name with social_marks sum print(dataframe.groupby('name')['social_marks'].sum()) print("---------------------------------") # group by name with maths_marks count print(dataframe.groupby('name')['Maths_marks'].count()) print("---------------------------------") # group by name with maths_marks print(dataframe.groupby('name')['Maths_marks'])
import pandas as pd # creating dataframe with student details dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033], 'name': ['sravan', 'manoj', 'aditya', 'bhanu'], 'Maths_marks': [99, 97, 88, 90], 'Chemistry_marks': [89, 99, 99, 90], 'telugu_marks': [99, 97, 88, 80], 'hindi_marks': [99, 97, 56, 67], 'social_marks': [79, 97, 78, 90], }) # group by name print(dataframe.groupby('name').first()) print("------------------------") # group by name with social_marks sum print(dataframe.groupby('name')['social_marks'].sum()) print("------------------------") # group by name with maths_marks count print(dataframe.groupby('name')['Maths_marks'].count())
到此這篇關(guān)于Pandas Groupby之如何在Python中匯總、聚合和分組數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python匯總、聚合和分組數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python內(nèi)置函數(shù)delattr的具體用法
本篇文章主要介紹了Python內(nèi)置函數(shù)delattr的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11TensorFlow2.X結(jié)合OpenCV 實(shí)現(xiàn)手勢(shì)識(shí)別功能
這篇文章主要介紹了TensorFlow2.X結(jié)合OpenCV 實(shí)現(xiàn)手勢(shì)識(shí)別功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Django調(diào)用支付寶接口代碼實(shí)例詳解
這篇文章主要介紹了Django調(diào)用支付寶接口代碼實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04python實(shí)現(xiàn)dijkstra最短路由算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)dijkstra最短路由算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Python通過(guò)keyboard庫(kù)實(shí)現(xiàn)模擬和監(jiān)聽(tīng)鍵盤(pán)
這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)keyboard庫(kù)實(shí)現(xiàn)模擬和監(jiān)聽(tīng)鍵盤(pán),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-10-10pampy超強(qiáng)的模式匹配工具的實(shí)現(xiàn)
在自然語(yǔ)言處理界,模式匹配可以說(shuō)是最常用的技術(shù)。甚至可以說(shuō),將NLP技術(shù)作為真實(shí)生產(chǎn)力的項(xiàng)目都少不了模式匹配。本文就介紹了pampy超強(qiáng)的模式匹配工具的實(shí)現(xiàn),感興趣的可以了解一下2021-07-07