好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python pandas分組聚合詳細

python pandas分組聚合詳細

熱門標簽:鶴壁手機自動外呼系統違法嗎 高德地圖標注收入咋樣 怎么辦理400客服電話 沈陽防封電銷電話卡 銀川電話機器人電話 B52系統電梯外呼顯示E7 企業微信地圖標注 地圖標注多個 萊蕪電信外呼系統

python pandas分組聚合

1、環境

  • python3.9
  • win10 64bit
  • pandas==1.2.1

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

2、分組

import pandas as pd
import numpy as np
pd.set_option('display.notebook_repr_html',False)
# 數據準備
df = pd.DataFrame({'A': [1, 1, 2, 2],'B': [1, 2, 3, 4],'C':[6,8,1,9]})
df

      A  B  C
0  1  1  6
1  1  2  8
2  2  3  1
3  2  4  9

對數據框按A列進行分組,產生分組數據框。分組數據框是可迭代對象,可以進行循環遍歷,可以看出在循環中,每個元素的類型是元組,

元組的第一個元素是分組值,第二個元素是對應的分組數據框。

# 分組
g_df=df.groupby('A')
# 分組數據框類
type(g_df)
pandas.core.groupby.generic.DataFrameGroupBy

# 循環分組數據
for i in g_df:
    print(i,type(i),end='\n\n')

(1,    A  B  C
0  1  1  6
1  1  2  8) class 'tuple'>

(2,    A  B  C
2  2  3  1
3  2  4  9) class 'tuple'>

可以對分組后的數據框直接使用聚合方法agg,對分組數據框的每一列計算統計函數值。

# 分組求和
df.groupby('A').agg('sum')
   B   C
A       
1  3  14
2  7  10

3、序列分組

可以根據數據框外的序列數據對數據框進行分組,需要注意序列長度需要與數據框行數相同。

# 定義分組列表
label=['a','a','b','b']
# 分組求和
df.groupby(label).agg('sum')
   A  B   C
a  2  3  14
b  4  7  10

4、多列分組

可以根據數據框的多列對數據框進行分組。

# 數據準備
df = pd.DataFrame({'A': [1, 1, 2, 2],'B': [3, 4, 3, 3],'C':[6,8,1,9]})
df


   A  B  C
0  1  3  6
1  1  4  8
2  2  3  1
3  2  3  9


根據A,B列進行分組,然后求和。

# 根據多列分組求和
df.groupby(['A','B']).agg('sum')
      C
A B    
1 3   6
  4   8
2 3  10

5、索引分組

可以根據索引對數據框進行分組,需要設置level參數。

# 數據準備
df = pd.DataFrame({'A': [1, 1, 2, 2],'B': [3, 4, 3, 3],'C':[6,8,1,9]},index=['a','a','b','b'])
df


   A  B  C
a  1  3  6
a  1  4  8
b  2  3  1
b  2  3  9


數據框只有一層索引,設置參數level=0

# 根據索引分組求和
df.groupby(level=0).agg('sum')
   A  B   C
a  2  7  14
b  4  6  10


當數據框索引有多層時,也可以根據需求設置level參數,完成分組聚合。

# 數據準備
mi=pd.MultiIndex.from_arrays([[1,1,2,2],[3,4,3,3]],names=['id1','id2'])
df=pd.DataFrame(dict(value=[4,7,2,9]),index=mi)
df


         value
id1 id2       
1   3        4
    4        7
2   3        2
    3        9


設置level參數,如需要根據第一層索引,即id1進行分組,可以設置level=0level='id1'完成分組聚合。

# 根據第一層索引分組求和
df.groupby(level=0).agg('sum')


     value
id1       
1       11
2       11


# 根據第一層索引分組求和
df.groupby(level='id1').agg('sum')
 

    value
id1       
1       11
2       11

7、聚合

分組后一般會進行聚合操作,用agg方法進行聚合。

# 數據準備
df = pd.DataFrame({'A': [1, 1, 2, 2],'B': [3, 4, 3, 3],'C':[6,8,1,9],'D':[2,5,4,8]})
df


   A  B  C  D
0  1  3  6  2
1  1  4  8  5
2  2  3  1  4
3  2  3  9  8

8、單函數對多列

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

# 對所有列分組求和
df.groupby('A').agg('sum')


   B   C   D
A           
1  7  14   7
2  6  10  12


可以對分組后的數據指定列進行分組聚合。需要注意子列需要用[]包裹

# 對指定列分組求和
df.groupby('A')[['B','C']].agg('sum')


   B   C
A       
1  7  14
2  6  10


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

# 匿名函數分組求和
df.groupby('A').agg(lambda x:sum(x))


  B   C   D
A           
1  7  14   7
2  6  10  12

9、多函數對多列

聚合函數可以是多個函數。聚合時,多個聚合函數會對每列進行計算,然后合并返回。聚合函數以列表的形式傳入。

# 全部列多函數聚合
df.groupby('A').agg(['sum','mean'])


    B        C        D     
  sum mean sum mean sum mean
A                           
1   7  3.5  14    7   7  3.5
2   6  3.0  10    5  12  6.0


聚合返回后的數據列名有兩層索引,第一層是聚合的列名,第二層是使用的聚合函數名。如果需要對返回的聚合函數名重命名,
需要在傳參時,傳入元組,第一個元素為聚合函數名,第二個元素為聚合函數。

# 聚合函數重命名
df.groupby('A').agg([('SUM','sum'),('MEAN','mean')])

    B        C        D     
  SUM MEAN SUM MEAN SUM MEAN
A                           
1   7  3.5  14    7   7  3.5
2   6  3.0  10    5  12  6.0


同樣,也可以傳入匿名函數。

# 匿名函數并重命名
df.groupby('A').agg([('SUM','sum'),('MAX',lambda x:max(x))])


    B       C       D    
  SUM MAX SUM MAX SUM MAX
A                        
1   7   4  14   8   7   5
2   6   3  10   9  12   8


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

# 不同列不同聚合函數
df.groupby('A').agg({'B':['sum','mean'],'C':'mean'})


    B         C
  sum mean mean
A              
1   7  3.5    7
2   6  3.0    5


可以重命名聚合后的列名,注意只能對一列傳入一個聚合函數時有效

# 聚合后重命名列名
df.groupby('A').agg(B_sum=('B','sum'),C_mean=('C','mean'))


   B_sum  C_mean
A               
1      7       7
2      6       5

到此這篇關于python pandas分組聚合詳細的文章就介紹到這了,更多相關python pandas分組聚合內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python Pandas分組聚合的實現方法
  • python中pandas對多列進行分組統計的實現
  • 詳解python pandas 分組統計的方法
  • Python Pandas實現數據分組求平均值并填充nan的示例
  • Python學習筆記之pandas索引列、過濾、分組、求和功能示例
  • Python Pandas的簡單使用教程
  • Python pandas入門系列之眾數和分位數
  • Python pandas求方差和標準差的方法實例
  • python geopandas讀取、創建shapefile文件的方法
  • 使用Python pandas讀取CSV文件應該注意什么?
  • 利用python Pandas實現批量拆分Excel與合并Excel

標簽:呼倫貝爾 銀川 呼倫貝爾 湘西 安慶 葫蘆島 烏魯木齊 三亞

巨人網絡通訊聲明:本文標題《python pandas分組聚合詳細》,本文關鍵詞  python,pandas,分組,聚合,詳細,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python pandas分組聚合詳細》相關的同類信息!
  • 本頁收集關于python pandas分組聚合詳細的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 打屁股打到嫩红视频网站| 18亚洲男同志videos网站| 国产年轻大学生情侣在线| 欧美3p两根一起进高清免费视频| 中国肥胖女人真人毛片| 国模极品一区二区三区| 好大好爽再深一点h文| HD Khurshed 演员表| 久久久夜色精品亚洲AV图片蝴蝶 | 免费看黄秘?片| 蜜芽永不失联| 99精品国产闺蜜国产在线闺蜜| 久久精品国产亚洲麻豆小说| 日本巨爆乳揉大乳任人揉| 美女脱全身给男人亲| 贱奴把拖鞋叼过来跪下| 国产91精品一区二区麻豆亚洲| 四虎一国产精品一区二区影院| 99精品国产99久久久久久97| 日本欧美国产精品| 免费看美女部位隐私直播| 调教美女母狗| 国产精品喷潮抽搐无码| 欧美同志video大全| 善良的小姨子在线免费观看| 车车好快的车车污网站rh免费| 3D精品重囗动漫巨大23| 日本1区2区3区| 国产免费高清福利拍拍拍| 52av我爱| 男人扒开女人腿下边添高潮视频 | 脱裤子打美女屁屁网站| A片在线观看性猛交XXXⅩ女人| 主播视频com入口在线观看 | 男人摸女人胸视频| 91亚洲Aⅴ天堂Av天堂无码| 景甜国产一区二区麻豆| 中国老妇性xxxxhd| 午夜性啪啪A片免费观看| 一个人看的www免费动漫视频| 一级国产交换配乱婬|