真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python更新聚合函數(shù) numpy聚合函數(shù)

Python分組

前言分組原理

成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)沙坡頭,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

核心:

1.不論分組鍵是數(shù)組、列表、字典、Series、函數(shù),只要其與待分組變量的軸長度一致都可以傳入groupby進(jìn)行分組。

2.默認(rèn)axis=0按行分組,可指定axis=1對列分組。

對數(shù)據(jù)進(jìn)行分組操作的過程可以概括為:split-apply-combine三步:

1.按照鍵值(key)或者分組變量將數(shù)據(jù)分組。

2.對于每組應(yīng)用我們的函數(shù),這一步非常靈活,可以是python自帶函數(shù),可以是我們自己編寫的函數(shù)。

3.將函數(shù)計(jì)算后的結(jié)果聚合。

1 分組模式及其對象

1.1 分組的一般模式

三個(gè)要素:分組依據(jù)、數(shù)據(jù)來源、操作及其返回結(jié)果

df.groupby(分組依據(jù))[數(shù)據(jù)來源].使用操作

1.2 分組依據(jù)的本質(zhì)

1.3Groupby 對象

通過 ngroups 屬性,可以訪問分為了多少組:

通過 groups 屬性,可以返回從 組名映射到 組索引列表的字典:

當(dāng) size 作為 DataFrame 的屬性時(shí),返回的是表長乘以表寬的大小,但在 groupby 對象上表示統(tǒng)計(jì)每個(gè)組的 元素個(gè)數(shù):

通過 get_group 方法可以直接獲取所在組對應(yīng)的行,此時(shí)必須知道組的具體名字:

1.4 分組的三大操作

分組的三大操作:聚合、變換和過濾

2.聚合函數(shù)

2.1內(nèi)置聚合函數(shù)

包括如下函數(shù): max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod

2.2agg 方法

【a】使用多個(gè)函數(shù)

當(dāng)使用多個(gè)聚合函數(shù)時(shí),需要用列表的形式把內(nèi)置聚合函數(shù)的對應(yīng)的字符串傳入,先前提到的所有字符串都是合法的。

【b】對特定的列使用特定的聚合函數(shù)

對于方法和列的特殊對應(yīng),可以通過構(gòu)造字典傳入 agg 中實(shí)現(xiàn),其中字典以列名為鍵,以聚合字符串或字符串列表為值。

【c】使用自定義函數(shù)

在 agg 中可以使用具體的自定義函數(shù),需要注意傳入函數(shù)的參數(shù)是之前數(shù)據(jù)源中的列,逐列進(jìn)行計(jì)算

【d】聚合結(jié)果重命名 如果想要對結(jié)果進(jìn)行重命名,只需要將上述函數(shù)的位置改寫成元組,元組的第一個(gè)元素為新的名字,第二個(gè)位置為原來的函數(shù),包括聚合字符串和自定義函數(shù)

3 變換和過濾

3.1 變換函數(shù)與 transform 方法

變 換 函 數(shù) 的 返 回 值 為 同 長 度 的 序 列, 最 常 用 的 內(nèi) 置 變 換 函 數(shù) 是 累 計(jì) 函 數(shù):cum- count/cumsum/cumprod/cummax/cummin ,它們的使用方式和聚合函數(shù)類似,只不過完成的是組內(nèi) 累計(jì)操作。

3.2 組索引與過濾

過濾在分組中是對于組的過濾,而索引是對于行的過濾

組過濾作為行過濾的推廣,指的是如果對一個(gè)組的全體所在行進(jìn)行統(tǒng)計(jì)的結(jié)果返回 True 則會被保留,F(xiàn)alse 則該組會被過濾,最后把所有未被過濾的組其對應(yīng)的所在行拼接起來作為 DataFrame 返回。

在 groupby 對象中,定義了 filter 方法進(jìn)行組的篩選,其中自定義函數(shù)的輸入?yún)?shù)為數(shù)據(jù)源構(gòu)成的 DataFrame 本身,在之前例子中定義的 groupby 對象中,傳入的就是 df[['Height', 'Weight']] ,因此所有表方法和屬性 都可以在自定義函數(shù)中相應(yīng)地使用,同時(shí)只需保證自定義函數(shù)的返回為布爾值即可。

4 跨列分組

4.1 apply 的引入

4.2 apply 的使用

在設(shè)計(jì)上,apply 的自定義函數(shù)傳入?yún)?shù)與 filter 完全一致,只不過后者只允許返回布爾值

【a】標(biāo)量情況:結(jié)果得到的是 Series ,索引與 agg 的結(jié)果一致

【b】Series 情況:得到的是 DataFrame ,行索引與標(biāo)量情況一致,列索引為 Series 的索引

【c】DataFrame 情況:得到的是 DataFrame ,行索引最內(nèi)層在每個(gè)組原先 agg 的結(jié)果索引上,再加一層返 回的 DataFrame 行索引,同時(shí)分組結(jié)果 DataFrame 的列索引和返回的 DataFrame 列索引一致

Windows下如何更新python?

首先查看python當(dāng)前版本,在此用win10 系統(tǒng)舉例:

查看當(dāng)前python版本

?+ R ---- 輸入 cmd(回車)---- 輸入python 查看

2.卸載當(dāng)前python

全部程序中,找到python當(dāng)前版本(帶有32/64bit的圖標(biāo)),右鍵卸載,點(diǎn)擊uninstall,等待

3.安裝最新版本的python

打開python官網(wǎng) :

點(diǎn)擊Downloads ----windows ------找到對應(yīng)版本的Windows x86-64 executable installer文件下載。

運(yùn)行下載的文件,選中 Add python to Path ------ install now

最后,重復(fù)步驟1,查看當(dāng)前版本,即完成

Python聚合函數(shù)使用

#encoding=utf-8

def?getRows():

names?=?["A",?"B"]

rows?=?[

[1,?'m'],

[2,?'m'],

[3,?'q'],

[3,?'q'],

[2,?'q'],

[1,?'s'],

[4,?'s'],

[2,?'s'],

[1,?'s'],

[3,?'m']

]

rs?=?[]

for?row?in?rows:

rs.append(dict(zip(names,?row)))

return?rs

def?count():

rs?=?getRows()

#?取所有B=m的行

rs?=?[r?for?r?in?rs?if?r["B"]?==?'m']

rs?=?sorted(rs,?key=lambda?r:?r["B"])

#?計(jì)算數(shù)量

result?=?{}

for?r?in?rs:

if?r["A"]?in?result:

result[r["A"]]?+=?1

else:

result[r["A"]]?=?1

return?result

print?count()

python--pandas分組聚合

groupby 方法是pandas中的分組方法,對數(shù)據(jù)框采用 groupby 方法后,返回的是 DataFrameGroupBy 對象,一般分組操作后會進(jìn)行聚合操作。

對數(shù)據(jù)框按 A 列進(jìn)行分組,產(chǎn)生分組數(shù)據(jù)框。分組數(shù)據(jù)框是可迭代對象,可以進(jìn)行循環(huán)遍歷,可以看出在循環(huán)中,每個(gè)元素的類型是元組,

元組的第一個(gè)元素是分組值,第二個(gè)元素是對應(yīng)的分組數(shù)據(jù)框。

可以對分組后的數(shù)據(jù)框直接使用聚合方法 agg ,對分組數(shù)據(jù)框的每一列計(jì)算統(tǒng)計(jì)函數(shù)值。

可以根據(jù)數(shù)據(jù)框外的序列數(shù)據(jù)對數(shù)據(jù)框進(jìn)行分組,需要注意 序列長度需要與數(shù)據(jù)框行數(shù)相同 。

可以根據(jù)數(shù)據(jù)框的多列對數(shù)據(jù)框進(jìn)行分組。

根據(jù) A , B 列進(jìn)行分組,然后求和。

可以根據(jù)索引對數(shù)據(jù)框進(jìn)行分組,需要設(shè)置 level 參數(shù)。

數(shù)據(jù)框只有一層索引,設(shè)置參數(shù) level=0 。

當(dāng)數(shù)據(jù)框索引有多層時(shí),也可以根據(jù)需求設(shè)置 level 參數(shù),完成分組聚合。

設(shè)置 level 參數(shù),如需要根據(jù)第一層索引,即 id1 進(jìn)行分組,可以設(shè)置 level=0 或 level='id1' 完成分組聚合。

分組后一般會進(jìn)行聚合操作,用 agg 方法進(jìn)行聚合。

對分組后數(shù)據(jù)框使用單個(gè)函數(shù)進(jìn)行聚合,單個(gè)聚合函數(shù)會對每列進(jìn)行計(jì)算,然后合并返回。聚合函數(shù)以字符串的形式傳入。

可以對分組后的數(shù)據(jù)指定列進(jìn)行分組聚合。需要注意 子列需要用[]包裹 。

聚合函數(shù)也可以傳入自定義的匿名函數(shù)。

聚合函數(shù)可以是多個(gè)函數(shù)。聚合時(shí),多個(gè)聚合函數(shù)會對每列進(jìn)行計(jì)算,然后合并返回。聚合函數(shù)以列表的形式傳入。

聚合返回后的數(shù)據(jù)列名有兩層索引,第一層是聚合的列名,第二層是使用的聚合函數(shù)名。如果需要對返回的聚合函數(shù)名重命名,

需要在傳參時(shí),傳入元組,第一個(gè)元素為聚合函數(shù)名,第二個(gè)元素為聚合函數(shù)。

同樣,也可以傳入匿名函數(shù)。

如果需要對不同的列進(jìn)行不同的聚合計(jì)算,則需要傳入字典的形式。

可以重命名聚合后的列名,注意 只能對一列傳入一個(gè)聚合函數(shù)時(shí)有效 。


新聞名稱:python更新聚合函數(shù) numpy聚合函數(shù)
標(biāo)題URL:http://weahome.cn/article/dosejoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部