国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

詳解python中g(shù)roupby函數(shù)通俗易懂

瀏覽:13日期:2022-07-25 15:45:08

一、groupby 能做什么?

python中g(shù)roupby函數(shù)主要的作用是進行數(shù)據(jù)的分組以及分組后地組內(nèi)運算!

對于數(shù)據(jù)的分組和分組運算主要是指groupby函數(shù)的應(yīng)用,具體函數(shù)的規(guī)則如下:

df[](指輸出數(shù)據(jù)的結(jié)果屬性名稱).groupby([df[屬性],df[屬性])(指分類的屬性,數(shù)據(jù)的限定定語,可以有多個).mean()(對于數(shù)據(jù)的計算方式——函數(shù)名稱)

舉例如下:

print(df['評分'].groupby([df['地區(qū)'],df['類型']]).mean())#上面語句的功能是輸出表格所有數(shù)據(jù)中不同地區(qū)不同類型的評分?jǐn)?shù)據(jù)平均值

二、單類分組

A.groupby('性別')

詳解python中g(shù)roupby函數(shù)通俗易懂

首先,我們有一個變量A,數(shù)據(jù)類型是DataFrame

想要按照【性別】進行分組

得到的結(jié)果是一個Groupby對象,還沒有進行任何的運算。

describe()

描述組內(nèi)數(shù)據(jù)的基本統(tǒng)計量

A.groupby('性別').describe().unstack()

詳解python中g(shù)roupby函數(shù)通俗易懂

* 只有數(shù)字類型的列數(shù)據(jù)才會計算統(tǒng)計

* 示例里面數(shù)字類型的數(shù)據(jù)有兩列 【班級】和【身高】

但是,我們并不需要統(tǒng)計班級的均值等信息,只需要【身高】,所以做一下小的改動:

A.groupby('性別')['身高'].describe().unstack()

詳解python中g(shù)roupby函數(shù)通俗易懂

unstack()

索引重排

上面的例子里面用到了一個小的技巧,讓運算結(jié)果更便于對比查看,感興趣的同學(xué)可以自行去除unstack,比較一下顯示的效果

三、多類分組

A.groupby( ['班級','性別'])

詳解python中g(shù)roupby函數(shù)通俗易懂

單獨用groupby,我們得到的還是一個 Groupby 對象。

mean()

組內(nèi)均值計算

DataFrame的很多函數(shù)可以直接運用到Groupby對象上。

詳解python中g(shù)roupby函數(shù)通俗易懂

上圖截自 pandas 官網(wǎng) document,這里就不一一細(xì)說。

我們還可以一次運用多個函數(shù)計算

A.groupby( ['班級','性別']).agg([np.sum, np.mean, np.std]) # 一次計算了三個

詳解python中g(shù)roupby函數(shù)通俗易懂

agg()

分組多個運算

四、時間分組

時間序列可以直接作為index,或者有一列是時間序列,差別不是很大。

這里僅僅演示,某一列為時間序列。

為A 新增一列【生日】,由于分隔符 “/” 的問題,我們查看列屬性,【生日】的屬性并不是日期類型

詳解python中g(shù)roupby函數(shù)通俗易懂

我們想做的是:

1、按照【生日】的【年份】進行分組,看看有多少人是同齡?

A['生日'] = pd.to_datetime(A['生日'],format ='%Y/%m/%d') # 轉(zhuǎn)化為時間格式A.groupby(A['生日'].apply(lambda x:x.year)).count() # 按照【生日】的【年份】分組

進一步,我們想選拔:

2、同一年作為一個小組,小組內(nèi)生日靠前的那一位作為小隊長:

A.sort_values('生日', inplace=True) # 按時間排序A.groupby(A['生日'].apply(lambda x:x.year),as_index=False).first()

詳解python中g(shù)roupby函數(shù)通俗易懂

as_index=False

保持原來的數(shù)據(jù)索引結(jié)果不變

first()

保留第一個數(shù)據(jù)

Tail(n=1)

保留最后n個數(shù)據(jù)

再進一步:

3、想要找到哪個月只有一個人過生日

A.groupby(A['生日'].apply(lambda x:x.month),as_index=False) # 到這里是按月分組A.groupby(A['生日'].apply(lambda x:x.month),as_index=False).filter(lambda x: len(x)==1)

詳解python中g(shù)roupby函數(shù)通俗易懂

filter()

對分組進行過濾,保留滿足()條件的分組

以上就是 groupby 最經(jīng)常用到的功能了。

用 first(),tail()截取每組前后幾個數(shù)據(jù)

用 apply()對每組進行(自定義)函數(shù)運算

用 filter()選取滿足特定條件的分組

到此這篇關(guān)于詳解python中g(shù)roupby函數(shù)通俗易懂的文章就介紹到這了,更多相關(guān)python groupby函數(shù)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 屯昌县| 车致| 章丘市| 册亨县| 文安县| 中方县| 恩施市| 印江| 定州市| 太仆寺旗| 榕江县| 南华县| 囊谦县| 江都市| 营口市| 商城县| 怀仁县| 临潭县| 西吉县| 和龙市| 松原市| 延吉市| 赤水市| 双江| 同江市| 成都市| 淳化县| 华安县| 睢宁县| 嘉兴市| 尼勒克县| 左云县| 鄂伦春自治旗| 花莲县| 柞水县| 白玉县| 石台县| 横山县| 华亭县| 永城市| 东莞市|