欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas數(shù)據(jù)分組和聚合操作方法

 更新時(shí)間:2018年04月11日 16:12:01   作者:Shingle_  
下面小編就為大家分享一篇pandas數(shù)據(jù)分組和聚合操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

《Python for Data Analysis》

GroupBy

分組運(yùn)算:split-apply-combine(拆分-應(yīng)用-合并)

DataFrame可以在其行(axis=0)或列(axis=1)上進(jìn)行分組。然后,將一個(gè)函數(shù)應(yīng)用到各個(gè)分組并產(chǎn)生新值。最后,所有這些函數(shù)的執(zhí)行結(jié)果會(huì)被合并到最終的結(jié)果對(duì)象中去。

GroupBy的size方法可以返回一個(gè)含有分組大小的Series。

對(duì)分組進(jìn)行迭代

for (k1,k2), group in df.groupby(['key1','key2']):
 print k1,k2
 print group

選取一個(gè)或一組列

df.groupby(['key1','key2'])[['data2']].mean()

通過(guò)字典或Series進(jìn)行分組

只需將字典或Series傳給groupby即可。

通過(guò)函數(shù)分組

people.groupby(len).sum() #根據(jù)人名的長(zhǎng)度進(jìn)行分組

通過(guò)索引級(jí)別分組

層次化索引數(shù)據(jù),根據(jù)索引級(jí)別進(jìn)行聚合,通過(guò)level關(guān)鍵字傳入級(jí)別編號(hào)或名稱。

df.groupby(level='cty',axis=1).count()

數(shù)據(jù)聚合

經(jīng)過(guò)優(yōu)化的groupby方法

函數(shù)名 說(shuō)明
count 分組中非NA值得數(shù)量
sum 非NA值的和
mean 非NA值的平均值
median 非NA值的算術(shù)平均數(shù)
std、var 無(wú)偏(分母為n-1)標(biāo)準(zhǔn)差和方差
min、max 非NA值的最小值和最大值
prod 非NA值的積
first、last 第一個(gè)和最后一個(gè)非NA值

對(duì)于上述描述統(tǒng)計(jì)方法,可以將函數(shù)名以字符串的形式傳入agg方法。例如:grouped.agg(['mean', 'std'])

如果要使用自己的聚合函數(shù),只需將其傳入aggregate或agg方法即可

def peak_to_peak(arr):
 return arr.max() - arr.min()
grouped.agg(peak_to_peak)

面向列的多函數(shù)應(yīng)用,可以對(duì)不同的列使用不同的聚合函數(shù)或者一次應(yīng)用多個(gè)函數(shù)。

如果傳入一組函數(shù)或函數(shù)名,得到的DataFrame的列就會(huì)以相應(yīng)的函數(shù)命名

如果傳入的是一個(gè)由(name,function)元組組成的列表,各個(gè)元組的第一個(gè)元素就會(huì)被用作DataFrame的列名。

不同的列使用不同的聚合函數(shù)也可以向agg傳入一個(gè)從列名映射到函數(shù)的字典

grouped.agg(['mean', 'std', peak_to_peak]) # 1
grouped.agg([('foo', 'mean'), ('bar', np.std)]) # 2
functions = ['count', 'mean', 'max']
result = grouped['tip', 'bill'].agg(functions) # 3
grouped.agg({'tip' : np.max, 'bill' : 'sum'}) # 4

分組級(jí)運(yùn)算和轉(zhuǎn)換

transform

transform會(huì)將一個(gè)函數(shù)應(yīng)用到各個(gè)分組,然后將結(jié)果放置到適當(dāng)?shù)奈恢蒙?。如果各個(gè)分組產(chǎn)生的是一個(gè)標(biāo)量值,則該值就會(huì)被廣播出去。

apply

一般性的“拆分-應(yīng)用-合并”

tips.groupby('smoker').apply(top)相當(dāng)于top函數(shù)在DataFrame的各個(gè)片段上調(diào)用,然后結(jié)果由pandas.concat組裝到一起,并以分組名稱進(jìn)行了標(biāo)記。,于是,最終結(jié)果就有了一個(gè)層次化索引,其內(nèi)層索引值來(lái)自于原DataFrame.

禁止分組鍵: 分組鍵會(huì)跟原始對(duì)象的索引共同構(gòu)成結(jié)果對(duì)象中的層次化索引。將group_keys=False傳入groupby即可禁止該效果。tips.groupby('smoker', group_keys=False).apply(top)

在GroupBy對(duì)象上調(diào)用describe相當(dāng)于f = lambda x : x.describe(); grouped.apply(f).

數(shù)據(jù)匯總工具

透視表 pivot_table

根據(jù)一個(gè)或多個(gè)鍵對(duì)數(shù)據(jù)進(jìn)行聚合,并根據(jù)行和列上的分組鍵將數(shù)據(jù)分配到各個(gè)矩形區(qū)域。

tips.pivot_table('tip_pct', index=['time', 'size', 'smoker'], 
columns='day', aggfunc='mean', fill_value=0)

參數(shù)名 說(shuō)明
values 待聚合的列的名稱。默認(rèn)所有列
rows 用于分組的列名或者其他分組鍵,出現(xiàn)在結(jié)果透視表的行
cols 用于分組的列名或者其他分組鍵,出現(xiàn)在結(jié)果透視表的列
aggfunc 聚合函數(shù)或函數(shù)列表,默認(rèn)“mean”??梢允侨魏螌?duì)groupby有效的函數(shù)
fill_value 用于替換結(jié)果表中缺失值
margins 添加行/列小計(jì)和總計(jì),默認(rèn)為False

交叉表 crosstab

是一種用于計(jì)算分組頻率的特殊透視表。

pd.crosstab([tips.time, tips.day], tips.smoker, margins=True)

以上這篇pandas數(shù)據(jù)分組和聚合操作方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • django 將model轉(zhuǎn)換為字典的方法示例

    django 將model轉(zhuǎn)換為字典的方法示例

    平常的開(kāi)發(fā)過(guò)程中不免遇到需要把model轉(zhuǎn)成字典的需求,這篇文章主要介紹了Django model轉(zhuǎn)字典的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Python 、Pycharm、Anaconda三者的區(qū)別與聯(lián)系、安裝過(guò)程及注意事項(xiàng)

    Python 、Pycharm、Anaconda三者的區(qū)別與聯(lián)系、安裝過(guò)程及注意事項(xiàng)

    這篇文章主要介紹了Python,Pycharm,Anaconda三者的區(qū)別與聯(lián)系、安裝過(guò)程及其注意事項(xiàng),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python 經(jīng)典面試題 21 道【不可錯(cuò)過(guò)】

    Python 經(jīng)典面試題 21 道【不可錯(cuò)過(guò)】

    這篇文章主要介紹了Python 經(jīng)典面試題 21 道,在python面試過(guò)程中這21道是經(jīng)常被問(wèn)到了,感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情

    Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情

    這篇文章主要介紹了Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python 實(shí)現(xiàn)簡(jiǎn)單的FTP程序

    python 實(shí)現(xiàn)簡(jiǎn)單的FTP程序

    這篇文章主要介紹了python 實(shí)現(xiàn)簡(jiǎn)單的FTP程序,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python音樂(lè)爬蟲(chóng)完美繞過(guò)反爬

    Python音樂(lè)爬蟲(chóng)完美繞過(guò)反爬

    這篇文章主要介紹了Python音樂(lè)爬蟲(chóng)完美繞過(guò)反爬的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python雙向循環(huán)鏈表實(shí)現(xiàn)方法分析

    Python雙向循環(huán)鏈表實(shí)現(xiàn)方法分析

    這篇文章主要介紹了Python雙向循環(huán)鏈表,結(jié)合實(shí)例形式分析了Python雙向鏈表的定義、遍歷、添加、刪除、搜索等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • python中l(wèi)ambda()的用法

    python中l(wèi)ambda()的用法

    這篇文章主要介紹了python中l(wèi)ambda()的用法,在python中有一個(gè)匿名函數(shù)lambda,匿名函數(shù)顧名思義就是指:是指一類(lèi)無(wú)需定義標(biāo)識(shí)符(函數(shù)名)的函數(shù)或子程序,需要的朋友可以參考下
    2017-11-11
  • python中wx模塊的具體使用方法

    python中wx模塊的具體使用方法

    這篇文章主要介紹了python中wx模塊的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Keras實(shí)現(xiàn)支持masking的Flatten層代碼

    Keras實(shí)現(xiàn)支持masking的Flatten層代碼

    這篇文章主要介紹了Keras實(shí)現(xiàn)支持masking的Flatten層代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論