最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

《Python for Data Analysis》

GroupBy

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

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

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

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

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

選取一個或一組列

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

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

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

通過函數(shù)分組

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

通過索引級別分組

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

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

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

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

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

對于上述描述統(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)用,可以對不同的列使用不同的聚合函數(shù)或者一次應(yīng)用多個函數(shù)。

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

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

不同的列使用不同的聚合函數(shù)也可以向agg傳入一個從列名映射到函數(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

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

transform

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

apply

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

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

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

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

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

透視表 pivot_table

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

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

參數(shù)名 說明
values 待聚合的列的名稱。默認(rèn)所有列
rows 用于分組的列名或者其他分組鍵,出現(xiàn)在結(jié)果透視表的行
cols 用于分組的列名或者其他分組鍵,出現(xiàn)在結(jié)果透視表的列
aggfunc 聚合函數(shù)或函數(shù)列表,默認(rèn)“mean”??梢允侨魏螌roupby有效的函數(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ù)分組和聚合操作方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python根據(jù)字典的值查詢出對應(yīng)的鍵的方法

    Python根據(jù)字典的值查詢出對應(yīng)的鍵的方法

    這篇文章主要介紹了Python根據(jù)字典的值查詢出對應(yīng)的鍵的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Pandas操作兩個Excel實(shí)現(xiàn)數(shù)據(jù)對應(yīng)行的合并

    Pandas操作兩個Excel實(shí)現(xiàn)數(shù)據(jù)對應(yīng)行的合并

    本文主要介紹了Pandas操作兩個Excel實(shí)現(xiàn)數(shù)據(jù)對應(yīng)行的合并,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • python geemap的安裝步驟及環(huán)境配置

    python geemap的安裝步驟及環(huán)境配置

    geemap是基于GEE由吳秋生老師二次開發(fā)的一個包,geemap主要使用python來進(jìn)行實(shí)現(xiàn)相關(guān)功能,這篇文章主要介紹了geemap的詳細(xì)安裝步驟及環(huán)境配置,需要的朋友可以參考下
    2022-08-08
  • Python爬蟲實(shí)戰(zhàn)演練之采集拉鉤網(wǎng)招聘信息數(shù)據(jù)

    Python爬蟲實(shí)戰(zhàn)演練之采集拉鉤網(wǎng)招聘信息數(shù)據(jù)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python采集拉鉤網(wǎng)招聘信息數(shù)據(jù),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-10-10
  • 使用python對文件中的單詞進(jìn)行提取的方法示例

    使用python對文件中的單詞進(jìn)行提取的方法示例

    這篇文章主要介紹了使用python對文件中的單詞進(jìn)行提取的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax

    Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax

    Django從后臺往前臺傳遞數(shù)據(jù)時(shí)有多種方法可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Django中數(shù)據(jù)在前后端傳遞的方式之表單、JSON與ajax的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 利用python爬取m3u8格式視頻的具體實(shí)現(xiàn)

    利用python爬取m3u8格式視頻的具體實(shí)現(xiàn)

    之前爬取的視頻都是mp4格式的,直接用requests請求就可以直接爬取,最近公司安排了一個小任務(wù),需要爬取m3u8這種格式的視頻,下面這篇文章主要給大家介紹了關(guān)于利用python爬取m3u8格式視頻的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python新手學(xué)習(xí)過程記錄之基礎(chǔ)環(huán)境:環(huán)境變量、版本區(qū)分、虛擬環(huán)境

    Python新手學(xué)習(xí)過程記錄之基礎(chǔ)環(huán)境:環(huán)境變量、版本區(qū)分、虛擬環(huán)境

    剛開始接觸Python開發(fā)語言,可能就會遇到一些棘手的問題,比如電腦上不知不覺已經(jīng)安裝了多個python版本,python3.8/3.10/3.11,甚至一些軟件中也集成有python解釋器;那么我編寫的python代碼,到底是使用哪個解釋器在執(zhí)行?我通過pip包管理工具安裝的依賴包到底在那個地方
    2024-05-05
  • Python實(shí)現(xiàn)把回車符\r\n轉(zhuǎn)換成\n

    Python實(shí)現(xiàn)把回車符\r\n轉(zhuǎn)換成\n

    這篇文章主要介紹了Python實(shí)現(xiàn)把回車符\r\n轉(zhuǎn)換成\n,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • python文件和文件夾復(fù)制函數(shù)

    python文件和文件夾復(fù)制函數(shù)

    這篇文章主要為大家詳細(xì)介紹了python文件和文件夾復(fù)制函數(shù)的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論

策勒县| 宁晋县| 崇明县| 仪征市| 凤台县| 泽普县| 郴州市| 邵阳县| 吉水县| 屏东县| 黄浦区| 康定县| 张家口市| 酒泉市| 旬邑县| 石嘴山市| 波密县| 汝阳县| 法库县| 尉氏县| 离岛区| 驻马店市| 来安县| 桂阳县| 改则县| 渑池县| 固原市| 鄄城县| 泸水县| 绍兴县| 阿鲁科尔沁旗| 东乡| 乐安县| 阜南县| 同江市| 晋江市| 屏南县| 大庆市| 肇东市| 天镇县| 苗栗市|