Pandas?Groupby之在Python中匯總、聚合和分組數(shù)據(jù)的示例詳解
GroupBy是一個(gè)非常簡(jiǎn)單的概念。我們可以創(chuàng)建一個(gè)類別分組,并對(duì)這些類別應(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ù)類型。
- describe():此方法詳細(xì)說(shuō)明數(shù)據(jù)類型及其屬性。
dataframe_name.describe()
- unique():此方法用于從給定列中獲取所有唯一值。
dataframe[‘column_name].unique()
- nunique():這個(gè)方法類似于unique,但它會(huì)返回唯一值的計(jì)數(shù)。
dataframe_name[‘column_name].nunique()
- info():此命令用于獲取數(shù)據(jù)類型和列信息
- 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實(shí)現(xiàn)簡(jiǎn)單的購(gòu)物程序代碼實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)簡(jiǎn)單的購(gòu)物程序代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
使用?Flask、Celery?和?Python?實(shí)現(xiàn)每月定時(shí)任務(wù)的步驟
下面給大家分享使用?Flask、Celery?和?Python?實(shí)現(xiàn)每月定時(shí)任務(wù)的步驟,本文分步驟結(jié)合腳本給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
基于Python實(shí)現(xiàn)給喜歡的主播自動(dòng)發(fā)彈幕
這篇文章主要介紹了python如何實(shí)現(xiàn)給喜歡的主播自動(dòng)發(fā)彈幕的功能,文中的示例代碼對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的朋友可以了解下2021-12-12
Python?OpenCV實(shí)現(xiàn)圖像增強(qiáng)操作詳解
由于很多不確定因素,導(dǎo)致圖像采集的光環(huán)境極其復(fù)雜;為了提高目標(biāo)檢測(cè)模型的泛化能力,本文將使用python中的opencv模塊實(shí)現(xiàn)常見的圖像增強(qiáng)方法,感興趣的可以了解一下2022-10-10
Python用SSH連接到網(wǎng)絡(luò)設(shè)備
這篇文章主要介紹了Python用SSH連接到網(wǎng)絡(luò)設(shè)備,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02

