Pandas中的資料聚合方法

2021-10-10 19:03:36 字數 3459 閱讀 7905

資料聚合,一般都是指對分組中的資料執行某些操作,比如求平均值、求最大值等,並且操作後得到乙個結果集,這些實現聚合的操作稱為聚合方法。pandas中提供了用做聚合操作的agg()方法

一、使用內建統計方法聚合資料

前面已經介紹過pandas的統計方法,比如用於獲取最大值和最小值的max()和min(),這些方法常用於簡單地聚合分組中的資料。

假設現在我們要計算某dataframe物件的平均數,那麼可以先按照某一列進行分組,使用mean()方法應用到每個分組中,並計算出平均數,最後再將每個分組的計算結果合併到一起,具體**如下:

import pandas as pd                         #######使用內建統計方法聚合資料

df.groupby('key1').mean()   #按 key1 進行分組,求每個分組的平均值

df.groupby('key2').mean() #按 key2 進行分組,求每個分組的平均值

二、面向列的聚合方法當內建方法無法滿足聚合要求時,這時可以自定義乙個函式,將它傳給agg()方法,實現對series或dataframe物件進行聚合運算。

agg()方法的格式如下:

agg(func,axis=0,*args,**kwargs)

上述方法中部分引數表示的含義如下:

(1)func:表示用於彙總資料的函式,可以為單個函式或函式列表。

(2)axis:表示函式作用於軸的方向,0或index表示將函式應用到每一列1或columns表示將函式應用到每一行,該引數的預設值為0

需要注意的是,通過agg()方法進行聚合時,func引數既可以接收pandas中的內建方法,也可以接收自定義的函式,同時,這些方法與函式可以作用於每一列,也可以將多個函式或方法作用於同一列,還可以將不同函式或方法作用於不同的列。

1.對每一列資料應用同乙個函式

使用agg()方法的最簡單的方式,就是給該方法的func引數傳入乙個函式,這個函式既可以是內建的,也可以自定義。

接下來通過**演示:

from pandas import dataframe,series            ######對每一列資料應用同乙個函式

dict([x for x in data_group]) #全部顯示

dict([x for x in data_group]) ['a'] #顯示 a 的資訊並通過字典顯示

dict([x for x in data_group]) ['b'] #顯示 b 的資訊並通過字典顯示

#通過字典[組名]的形式,先檢視了a組的資料,再檢視了b組的資料

接下來,對每個分組的資料進行聚合運算:

data_group.agg(sum)           #對每個分組的資料進行聚合運算

data.agg(sum) #對未分組的資料進行聚合運算

agg()也可以使用自定義的函式作為引數傳入,如下面**演示:

def range_data_group(arr):             #定義自定義函式,這裡自定義的是極差=極大值-極小值

return arr.max()-arr.min()

data_group.agg(range_data_group)

2.對某列資料應用不同的函式假設現在需要對一列資料使用兩種不同的函式,只需要將要用的函式的名稱放在列表中就行。**如下:

data_group.agg([range_data_group,sum])    ###對某列資料應用不同的函式,只需要將要用的函式的名稱放在 "列表" 中就行

data_group.agg([min,sum])

雖然每一列可以應用不同的函式,但是結果並不能很直觀地辨別出每個函式代表的含義,所以進行了優化,可以使用**(name,fuction)**優化索引名稱,name-自定義名稱,function-函式名,例子**如下:

data_group.agg([('最小值',min),('和',sum)])        #使用(name,function)優化索引名稱 , name-自定義名稱, function-函式名
3.對不同列資料應用不同的函式如果希望對不同的列使用不同的函式,則可以在agg()方法中傳入乙個格式的字典,例子**如下:

data_group.agg() ###對不同列資料應用不同函式

#在 agg()方法中傳入乙個格式的字典

pandas中資料聚合 重點

資料聚合是資料處理的最後一步,通常是要使每乙個陣列生成乙個單一的數值。資料分類處理 1.資料分類處理的核心 groupby 函式 匯入模組 import pandas as pd import numpy as np from pandas import series,dataframe 生成假資料...

pandas資料分組和聚合操作

python for data analysis dataframe可以在其行 axis 0 或列 axis 1 上進行分組。然後,將乙個函式應用到各個分組並產生新值。最後,所有這些函式的執行結果會被合併到最終的結果物件中去。groupby的size方法可以返回乙個含有分組大小的series。for...

Pandas中的join 合併資料方法

根據行索引合併資料 join方法能通過索引或指定列來連線dataframe,語法格式如下 join other,on none,how left lsuffix rsuffix sort false 上述方法引數表示的含義如下 on 用於連線名。如果兩個表中行索引和列索引重疊,那麼當使用join 方...