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

Pandas之groupby( )用法筆記小結(jié)

 更新時間:2019年07月23日 11:10:17   作者:Byron_NG  
這篇文章主要介紹了Pandas之groupby( )用法筆記小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

groupby官方解釋

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)

Group series using mapper (dict or key function, apply given function to group, return result as series) or by a series of columns.

講真的,非常不能理解pandas官方文檔的這種表達(dá)形式,讓人真的有點(diǎn)摸不著頭腦,example給得又少,參數(shù)也不給得很清楚,不過沒有辦法,還是只能選擇原諒他。

groupby我用過的用法

基本用法我這里就不呈現(xiàn)了,我覺得用過一次的人基本不會忘記,這里我主要寫一下我用過的關(guān)系groupby函數(shù)的疑惑:

apply & agg

這個問題著實(shí)困擾了我很久,經(jīng)過研究,找了一些可能幫助理解的東西。先舉一個例子:

import pandas as pd
df = pd.DataFrame({'Q':['LI','ZHANG','ZHANG','LI','WANG'], 'A' : [1,1,1,2,2], 'B' : [1,-1,0,1,2], 'C' : [3,4,5,6,7]})

  A B C Q
0 1 1 3 LI
1 1 -1 4 ZHANG
2 1 0 5 ZHANG
3 2 1 6 LI
4 2 2 7 WANG

df.groupby('Q').apply(lambda x:print(x))

       A  B  C   Q
    0  1  1  3  LI
    3  2  1  6  LI
       A  B  C   Q
    0  1  1  3  LI
    3  2  1  6  LI
       A  B  C     Q
    4  2  2  7  WANG
       A  B  C      Q
    1  1 -1  4  ZHANG
    2  1  0  5  ZHANG

df.groupby('Q').agg(lambda x:print(x))

    0    1
    3    2
    Name: A, dtype: int64
    4    2
    Name: A, dtype: int64
    1    1
    2    1
    Name: A, dtype: int64
    0    1
    3    1
    Name: B, dtype: int64
    4    2
    Name: B, dtype: int64
    1   -1
    2    0
    Name: B, dtype: int64
    0    3
    3    6
    Name: C, dtype: int64
    4    7
    Name: C, dtype: int64
    1    4
    2    5
    Name: C, dtype: int64

  A B C
Q      
LI None None None
WANG None None None
ZHANG None None None

從這個例子可以看出,使用apply()處理的對象是一個個的類如DataFrame的數(shù)據(jù)表,然而agg()則每次只傳入一列。

不過我覺得這一點(diǎn)區(qū)別在實(shí)際應(yīng)用中分別并不大,因?yàn)镮python的Out輸出對于這兩個函數(shù)幾乎沒有差別,不管是處理一列還是一表。

我覺得agg()有一點(diǎn)讓我很開心就是他可以同時傳入多個函數(shù),簡直不要太方便哈哈:

df.groupby('Q').agg(['mean','std','count','max'])

  A B C
  mean std count max mean std count max mean std count max
Q                        
LI 1.5 0.707107 2 2 1.0 0.000000 2 1 4.5 2.121320 2 6
WANG 2.0 NaN 1 2 2.0 NaN 1 2 7.0 NaN 1 7
ZHANG 1.0 0.000000 2 1 -0.5 0.707107 2 0 4.5 0.707107 2 5

Plotting

這個也是我剛剛學(xué)會的,groupby的plot簡直不要太方便了:(不過這個例子選的不是很好)

%matplotlib inline
df.groupby('Q').agg(['mean','std','count','max']).plot(kind='bar')
<matplotlib.axes._subplots.AxesSubplot at 0x1133bd710>

MultiIndex

這個是困擾我最多的一個問題,因?yàn)槿绻襣roupby的時候選擇了兩個level,之后的data總是呈現(xiàn)透視表的形式,如:

Muldf = df.groupby(['Q','A']).agg('mean')
print(Muldf)

               B    C
    Q     A         
    LI    1  1.0  3.0
          2  1.0  6.0
    WANG  2  2.0  7.0
    ZHANG 1 -0.5  4.5

我開始甚至以為這應(yīng)該不是dataframe,是一個我可能沒注意過的一個東西,可是后來我發(fā)現(xiàn),這不過是MultiIndex形式的一種dataframe罷了。

Muldf.B

    Q      A
    LI     1    1.0
           2    1.0
    WANG   2    2.0
    ZHANG  1   -0.5
    Name: B, dtype: float64

如果要選擇某一個index,用`xs()`函數(shù):

Muldf.xs('LI')

  B C
A    
1 1.0 3.0
2 1.0 6.0

PS:有個問題困擾好久了,怎么把multiindex對象變回原來的形式呢。如:

Multiindex格式如下:(a, b, c, ...),

index column
(a1,b1,c1) d1
(a2,b2,c2) d2

直接調(diào)用函數(shù)reset_index(),Multiindex中(a, b, c, ...)就變成columns了,index重置為(0,1,2,...), 如下:

index       column
0 a1 b1 c1 d1
1 a2 b2 c2 d2

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)戰(zhàn)教程之OCR文字識別方法匯總

    python實(shí)戰(zhàn)教程之OCR文字識別方法匯總

    ocr是一種光學(xué)字符識別技術(shù),簡單來說它能夠識別出圖像中的文字并且將其給取出來,下面這篇文章主要給大家介紹了關(guān)于python實(shí)戰(zhàn)教程之OCR文字識別方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python3 如何開啟自帶http服務(wù)

    Python3 如何開啟自帶http服務(wù)

    這篇文章主要介紹了Python3 開啟自帶http服務(wù)的操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python django框架 web端視頻加密的實(shí)例詳解

    Python django框架 web端視頻加密的實(shí)例詳解

    這篇文章主要介紹了Python django框架 web端視頻加密,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 對Python中數(shù)組的幾種使用方法總結(jié)

    對Python中數(shù)組的幾種使用方法總結(jié)

    今天小編就為大家分享一篇對Python中數(shù)組的幾種使用方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python實(shí)現(xiàn)給微信公眾號發(fā)送消息的方法

    python實(shí)現(xiàn)給微信公眾號發(fā)送消息的方法

    這篇文章主要介紹了python實(shí)現(xiàn)給微信公眾號發(fā)送消息的方法,結(jié)合實(shí)例形式分析了Python針對微信公眾號接口操作的相關(guān)技巧,需要的朋友可以參考下
    2017-06-06
  • Python入門教程(二十四)Python的迭代器

    Python入門教程(二十四)Python的迭代器

    這篇文章主要介紹了Python入門教程(二十四)Python的迭代器,Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • 淺析AST抽象語法樹及Python代碼實(shí)現(xiàn)

    淺析AST抽象語法樹及Python代碼實(shí)現(xiàn)

    Abstract Syntax Tree抽象語法樹簡寫為ATS,是相當(dāng)于用樹結(jié)構(gòu)將代碼程式表現(xiàn)出來的一種數(shù)據(jù)結(jié)構(gòu),這里我們就來淺析AST抽象語法樹及Python代碼實(shí)現(xiàn)
    2016-06-06
  • 1秒鐘使用python建立文件服務(wù)器的方法步驟

    1秒鐘使用python建立文件服務(wù)器的方法步驟

    本文主要介紹了1秒鐘使用python建立文件服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python中sql解析庫sqlparse基本操作指南

    python中sql解析庫sqlparse基本操作指南

    sqlparse是用于Python的非驗(yàn)證SQL解析器,它提供了對SQL語句的解析,拆分和格式化的支持,這篇文章主要給大家介紹了關(guān)于python中sql解析庫sqlparse基本操作指南的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • python如何實(shí)現(xiàn)Dice系數(shù)

    python如何實(shí)現(xiàn)Dice系數(shù)

    這篇文章主要介紹了python如何實(shí)現(xiàn)Dice系數(shù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論

凤台县| 信宜市| 昭平县| 鄂托克前旗| 扶风县| 芦溪县| 芮城县| 阜阳市| 揭西县| 通山县| 随州市| 昂仁县| 石林| 遂平县| 涞源县| 封开县| 乐业县| 仪征市| 宁乡县| 咸丰县| 南靖县| 闽侯县| 任丘市| 贵德县| 虞城县| 黔东| 丹巴县| 广东省| 靖边县| 襄城县| 万全县| 汨罗市| 乌审旗| 卓尼县| 浦东新区| 类乌齐县| 商南县| 沙河市| 江孜县| 深泽县| 南阳市|