深入淺出Pandas--Pandas分組聚合--概述

對(duì)應(yīng)書(shū)本第三部分第6章Pandas分組聚合第1節(jié)

對(duì)一個(gè)DataFrame按第一列進(jìn)行了分組,分成A、B、C三個(gè)組,接著對(duì)各個(gè)組內(nèi)部全部進(jìn)行了求和計(jì)算,最后將結(jié)果組合成一個(gè)新的DataFrame,這樣就完成了拆分–應(yīng)用–合并的全部工作。


groupby語(yǔ)法

df.groupby()方法可以按指定字段對(duì)DataFrame進(jìn)行分組,生成一個(gè)分組器對(duì)象。
“分組器對(duì)象”是一個(gè) GroupBy 對(duì)象(pandas.core.groupby.GroupBy)。它本身不是一個(gè)直接可見(jiàn)的數(shù)據(jù)結(jié)構(gòu),而是一個(gè)中間對(duì)象,用于表示“按指定規(guī)則分組后的數(shù)據(jù)”,并支持后續(xù)聚合、轉(zhuǎn)換、過(guò)濾等操作。

df.groupby(by=None, axis=0, level=None,
  as_index: bool = True, sort: bool = True,
  group_keys: bool = True, observed: bool = False,
  dropna: bool = True,
) -> 'DataFrameGroupBy'

分組操作會(huì)按指定的規(guī)則對(duì)數(shù)據(jù)進(jìn)行拆分,groupby完成的就是拆分工作。groupby也能對(duì)Series完成分組操作。

參數(shù)解釋如下:

  • by:代表分組的依據(jù)和方法。如果by是一個(gè)函數(shù),則會(huì)在數(shù)據(jù)的索引的每個(gè)值去調(diào)用它,從而產(chǎn)生值,按這些值進(jìn)行分組。如果
    傳遞dict或Series,則將使用dict或Series的值來(lái)確定組;如果傳遞ndarray,則按原樣使用這些值來(lái)確定組。傳入字典,鍵為原索引
    名,值為分組名。
  • axis:沿行(0)或列(1)進(jìn)行拆分。也可傳入index或columns,默認(rèn)是0。
  • level:如果軸是多層索引(MultiIndex),則按一個(gè)或多個(gè)特定的層級(jí)進(jìn)行拆分,支持?jǐn)?shù)字、層名及序列。
  • as_index:數(shù)據(jù)分組聚合輸出,默認(rèn)返回帶有組標(biāo)簽的對(duì)象作為索引,傳False則不會(huì)。
  • sort:是否對(duì)分組進(jìn)行排序。默認(rèn)會(huì)排序,傳False會(huì)讓數(shù)據(jù)分組中第一個(gè)出現(xiàn)的值在前,同時(shí)會(huì)提高分組性能。
  • group_keys:調(diào)用函數(shù)時(shí),將組鍵添加到索引中進(jìn)行識(shí)別。
  • observed:僅當(dāng)分組是分類數(shù)據(jù)時(shí)才適用。如果為T(mén)rue,僅顯示分類分組數(shù)據(jù)的顯示值;如果為False,顯示分類分組數(shù)據(jù)的所有
    值。
  • dropna:如果為T(mén)rue,并且組鍵包含NA值,則NA值及行/列將被刪除;如果為False,則NA值也將被視為組中的鍵。

以上大多參數(shù)對(duì)于Series也是適用的,如果對(duì)DataFrame進(jìn)行分組會(huì)返回DataFrame-GroupBy對(duì)象,對(duì)Series分組會(huì)返回SeriesGroupBy對(duì)象

使用示例



DataFrame應(yīng)用分組

分組求和

分組后聚合

聚合時(shí)同一列使用不同方法


Series應(yīng)用分組

對(duì)Series也可以使用分組聚合,但相對(duì)來(lái)說(shuō)場(chǎng)景比較少。在下例中,df.Q1是一個(gè)Series,它的分組依據(jù)是df.team。根據(jù)groupby的語(yǔ)法,如果給by參數(shù)傳入一個(gè)Series,此Series與被分組數(shù)據(jù)的索引對(duì)齊后,按Series的值進(jìn)行分組。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容