成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > pandas group分組與agg聚合的實例

pandas group分組與agg聚合的實例

熱門標簽:工廠智能電話機器人 400電話申請服務(wù)商選什么 在哪里辦理400電話號碼 清遠360地圖標注方法 原裝電話機器人 西藏智能外呼系統(tǒng)五星服務(wù) 平頂山外呼系統(tǒng)免費 江蘇客服外呼系統(tǒng)廠家 千陽自動外呼系統(tǒng)

如下:

import pandas as pd
 
df = pd.DataFrame({'Country':['China','China', 'India', 'India', 'America', 'Japan', 'China', 'India'], 
     'Income':[10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000],
     'Age':[5000, 4321, 1234, 4010, 250, 250, 4500, 4321]})

構(gòu)造的數(shù)據(jù)如下:

 Age Country Income
0 5000 China 10000
1 4321 China 10000
2 1234 India 5000
3 4010 India 5002
4 250 America 40000
5 250 Japan 50000
6 4500 China 8000
7 4321 India 5000

分組

單列分組

df_gb = df.groupby('Country')
for index, data in df_gb:
 print(index)
 print(data)

輸出

America
 Age Country Income
4 250 America 40000
China
 Age Country Income
0 5000 China 10000
1 4321 China 10000
6 4500 China 8000
India
 Age Country Income
2 1234 India 5000
3 4010 India 5002
7 4321 India 5000
Japan
 Age Country Income
5 250 Japan 50000

多列分組

df_gb = df.groupby(['Country', 'Income'])
for (index1, index2), data in df_gb:
 print((index1, index2))
 print(data)

輸出

('America', 40000)
 Age Country Income
4 250 America 40000
('China', 8000)
 Age Country Income
6 4500 China 8000
('China', 10000)
 Age Country Income
0 5000 China 10000
1 4321 China 10000
('India', 5000)
 Age Country Income
2 1234 India 5000
7 4321 India 5000
('India', 5002)
 Age Country Income
3 4010 India 5002
('Japan', 50000)
 Age Country Income
5 250 Japan 50000

聚合

對分組后數(shù)據(jù)進行聚合

默認情況對分組之后其他列進行聚合

df_agg = df.groupby('Country').agg(['min', 'mean', 'max'])
print(df_agg)

輸出

 Age     Income      
   min   mean max min   mean max
Country              
America 250 250.000000 250 40000 40000.000000 40000
China 4321 4607.000000 5000 8000 9333.333333 10000
India 1234 3188.333333 4321 5000 5000.666667 5002
Japan  250 250.000000 250 50000 50000.000000 50000

對分組后的部分列進行聚合

某些情況,只需要對部分數(shù)據(jù)進行不同的聚合操作,可以通過字典來構(gòu)建

num_agg = {'Age':['min', 'mean', 'max']}
print(df.groupby('Country').agg(num_agg))

輸出

 Age     
   min   mean max
Country       
America 250 250.000000 250
China 4321 4607.000000 5000
India 1234 3188.333333 4321
Japan  250 250.000000 250
num_agg = {'Age':['min', 'mean', 'max'], 'Income':['min', 'max']}
print(df.groupby('Country').agg(num_agg))

輸出

  Age     Income  
   min   mean max min max
Country          
America 250 250.000000 250 40000 40000
China 4321 4607.000000 5000 8000 10000
India 1234 3188.333333 4321 5000 5002
Japan  250 250.000000 250 50000 50000

補充:pandas——很全的groupby、agg,對表格數(shù)據(jù)分組與統(tǒng)計

我這篇groupby寫的不好。太復雜了。其實實際上經(jīng)常用的就那么幾個。舉個例子,把常用的往那一放就很容易理解和拿來用了。日后再寫一篇。

groupby功能:分組

groupby + agg(聚集函數(shù)們): 分組后,對各組應(yīng)用一些函數(shù),如'sum',‘mean',‘max',‘min'…

groupby默認縱方向上分組,axis=0

DataFrame
import pandas as pd
import numpy as np
 df = pd.DataFrame({'key1':['a', 'a', 'b', 'b', 'a'],
     'key2':['one', 'two', 'one', 'two', 'one'],
     'data1':np.random.randn(5),
     'data2':np.random.randn(5)})
print(df)
  data1  data2 key1 key2
0 -0.410122 0.247895 a one
1 -0.627470 -0.989268 a two
2 0.179488 -0.054570 b one
3 -0.299878 -1.640494 b two
4 -0.297191 0.954447 a one

分組,并對分組進行迭代

list(df.groupby(['key1']))#list后得到:[(group1),(group2),......]
[('a',  data1  data2 key1 key2
 0 -0.410122 0.247895 a one
 1 -0.627470 -0.989268 a two
 4 -0.297191 0.954447 a one), ('b',  data1  data2 key1 key2
 2 0.179488 -0.054570 b one
 3 -0.299878 -1.640494 b two)]

list后得到:[(group1),(group2),…]

每個數(shù)據(jù)片(group)格式: (name,group)元組

1. 按key1(一個列)分組,其實是按key1的值

groupby對象支持迭代,產(chǎn)生一組二元元組:(分組名,數(shù)據(jù)塊),(分組名,數(shù)據(jù)塊)…

for name,group in df.groupby(['key1']):
 print(name)
 print(group)
a
  data1  data2 key1 key2
0 -0.410122 0.247895 a one
1 -0.627470 -0.989268 a two
4 -0.297191 0.954447 a one
b
  data1  data2 key1 key2
2 0.179488 -0.054570 b one
3 -0.299878 -1.640494 b two

2. 按[key1, key2](多個列)分組

對于多重鍵,產(chǎn)生的一組二元元組:((k1,k2),數(shù)據(jù)塊),((k1,k2),數(shù)據(jù)塊)…

第一個元素是由鍵值組成的元組

for name,group in df.groupby(['key1','key2']):
 print(name) #name=(k1,k2)
 print(group)
('a', 'one')
  data1  data2 key1 key2
0 -0.410122 0.247895 a one
4 -0.297191 0.954447 a one
('a', 'two')
  data1  data2 key1 key2
1 -0.62747 -0.989268 a two
('b', 'one')
  data1 data2 key1 key2
2 0.179488 -0.05457 b one
('b', 'two')
  data1  data2 key1 key2
3 -0.299878 -1.640494 b two

3. 按函數(shù)分組

4. 按字典分組

5. 按索引級別分組

6.將函數(shù)跟數(shù)組、列表、字典、Series混合使用也不是問題,因為任何東西最終都會被轉(zhuǎn)換為數(shù)組

將這些數(shù)據(jù)片段做成字典

dict(list(df.groupby(['key1'])))#dict(list())
{'a':  data1  data2 key1 key2
 0 -0.410122 0.247895 a one
 1 -0.627470 -0.989268 a two
 4 -0.297191 0.954447 a one, 'b':  data1  data2 key1 key2
 2 0.179488 -0.054570 b one
 3 -0.299878 -1.640494 b two}

分組后進行一些統(tǒng)計、計算等

1. 分組后,返回一個含有分組大小的Series

按key1分組

df.groupby(['key1']).size()
key1
a 3
b 2
dtype: int64
dict(['a1','x2','e3'])



{'a': '1', 'e': '3', 'x': '2'}

按[key1,key2]分組

df.groupby(['key1','key2']).size()
key1 key2
a  one  2
  two  1
b  one  1
  two  1
dtype: int64

2. 對data1按key1進行分組,并計算data1列的平均值

df['data1'].groupby(df['key1']).mean()
#groupby沒有進行任何的計算。它只是進行了一個分組
key1
a -0.444928
b -0.060195
Name: data1, dtype: float64
df.groupby(['key1'])['data1'].mean()#理解:對df按key1分組,并計算分組后df['data1']的均值
#等價于:df.groupby(['key1']).data1.mean()
key1
a -0.444928
b -0.060195
Name: data1, dtype: float64

說明:

groupby沒有進行任何的計算。它只是進行了一個分組。

數(shù)據(jù)(Series)根據(jù)分組鍵進行了聚合,產(chǎn)生了一個新的Series,其索引為key1列中的唯一值。

這種索引操作所返回的對象是一個已分組的DataFrame(如果傳入的是列表或數(shù)組)或已分組的Series

df.groupby(['key1'])['data1'].size()
key1
a 3
b 2
Name: data1, dtype: int64

3.對data1按[key1,key2]進行分組,并計算data1的平均值

df['data1'].groupby([df['key1'],df['key2']]).mean()
key1 key2
a  one -0.353657
  two -0.627470
b  one  0.179488
  two -0.299878
Name: data1, dtype: float64
df.groupby(['key1','key2'])['data1'].mean()
#等價于:df.groupby(['key1','key2']).data1'.mean()
key1 key2
a  one -0.353657
  two -0.627470
b  one  0.179488
  two -0.299878
Name: data1, dtype: float64

通過兩個鍵對數(shù)據(jù)進行了分組,得到的Series具有一個層次化索引(由唯一的鍵對組成):

df.groupby(['key1','key2'])['data1'].mean().unstack()
key2 one two
key1
a -0.353657 -0.627470
b 0.179488 -0.299878

在上面這些示例中,分組鍵均為Series。實際上,分組鍵可以是任何長度適當?shù)臄?shù)組。非常靈活。

橫方向上

按列的數(shù)據(jù)類型(df.dtypes)來分

df共兩種數(shù)據(jù)類型:float64和object,所以會分為兩組(dtype(‘float64'),數(shù)據(jù)片),(dtype(‘O'), 數(shù)據(jù)片)

list(df.groupby(df.dtypes, axis=1))
[(dtype('float64'),  data1  data2
 0 -0.410122 0.247895
 1 -0.627470 -0.989268
 2 0.179488 -0.054570
 3 -0.299878 -1.640494
 4 -0.297191 0.954447), (dtype('O'), key1 key2
 0 a one
 1 a two
 2 b one
 3 b two
 4 a one)]

agg的應(yīng)用

groupby+agg 可以對groupby的結(jié)果同時應(yīng)用多個函數(shù)

SeriesGroupBy的方法agg()參數(shù):

aggregate(self, func_or_funcs, * args, ** kwargs)
func: function, string, dictionary, or list of string/functions

返回:aggregated的Series

s= pd.Series([10,20,30,40])
s
0 10
1 20
2 30
3 40
dtype: int64
for n,g in s.groupby([1,1,2,2]):
 print(n)
 print(g)
0 10
1 20
dtype: int64
2
2 30
3 40
dtype: int64
s.groupby([1,1,2,2]).min()
1
1 10
2 30
dtype: int64
#等價于這個:
s.groupby([1,1,2,2]).agg('min')
1 10
2 30
dtype: int64
s.groupby([1,1,2,2]).agg(['min','max'])#加[],func僅接受一個參數(shù)
min max
1 10 20
2 30 40

常常這樣用:

df

data1 data2 key1 key2
0 -0.410122 0.247895 a one
1 -0.627470 -0.989268 a two
2 0.179488 -0.054570 b one
3 -0.299878 -1.640494 b two
4 -0.297191 0.954447 a one

比較下面,可以看出agg的用處:

df.groupby(['key1'])['data1'].min()
key1
a -0.627470
b -0.299878
Name: data1, dtype: float64
df.groupby(['key1'])['data1'].agg({'min'})
min
key1
a -0.627470
b -0.299878
#推薦用這個√
df.groupby(['key1']).agg({'data1':'min'})#對data1列,取各組的最小值,名字還是data1
data1
key1
a -0.627470
b -0.299878
#按key1分組后,aggregate各組data1的最小值和最大值:
df.groupby(['key1'])['data1'].agg({'min','max'})
max min
key1
a -0.297191 -0.627470
b 0.179488 -0.299878
#推薦用這個√
df.groupby(['key1']).agg({'data1':['min','max']})
data1
min max
key1
a -0.627470 -0.297191
b -0.299878 0.179488

可以對groupby的結(jié)果更正列名(不推薦用這個,哪怕在后面單獨更改列名)

# 對data1,把min更名為a,max更名為b
df.groupby(['key1'])['data1'].agg({'a':'min','b':'max'})#這里的'min' 'max'為兩個函數(shù)名
d:\python27\lib\site-packages\ipykernel_launcher.py:2: FutureWarning: using a dict on a Series for aggregation
is deprecated and will be removed in a future version
a b
key1
a -0.627470 -0.297191
b -0.299878 0.179488

重要技巧: groupby之后直接.reset_index()可以得到一個沒有多級索引的DataFrame

之后可以通過df.rename({‘old_col1':‘new_col1',‘old_col2':‘new_col2',…})重命名

eg:

df1= df.groupby(['date'])['price'].agg({'sum','count'}).reset_index()

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Pandas中DataFrame的分組/分割/合并的實現(xiàn)
  • pandas 實現(xiàn)分組后取第N行
  • pandas分組排序 如何獲取第二大的數(shù)據(jù)
  • pandas groupby分組對象的組內(nèi)排序解決方案
  • pandas組內(nèi)排序,并在每個分組內(nèi)按序打上序號的操作
  • pandas 實現(xiàn)某一列分組,其他列合并成list

標簽:隨州 安慶 西安 錦州 白城 股票 日照 天水

巨人網(wǎng)絡(luò)通訊聲明:本文標題《pandas group分組與agg聚合的實例》,本文關(guān)鍵詞  pandas,group,分組,與,agg,聚合,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pandas group分組與agg聚合的實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于pandas group分組與agg聚合的實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    一本色道久久综合亚洲| 青青草手机视频在线观看| www欧美com| 色综合视频网站| 黄色片免费在线观看| 天天爱天天色| 国产高清无密码一区二区三区| 欧美手机在线| 国模雨婷捆绑高清在线| 日韩黄色短视频| 91丝袜美腿高跟国产极品老师| 激情深爱一区二区| 欧美黑人乱大交ⅹxxxxx| 日韩成人一区二区三区在线观看| 久久人人爽爽人人爽人人片av| 国产精品免费久久久久影院| 精品福利一区| 国产精品99免视看9| 亚洲亚洲人成综合网络| 99精品一区| 麻豆tv在线| 日韩美女视频中文字幕| 69堂免费精品视频在线播放| 欧美极品美女视频网站在线观看免费| 日韩激情一二三区| 特级毛片在线免费观看| 中文字幕无码人妻少妇免费| 欧美精品电影免费在线观看| 亚洲男男gay视频| 国产精品自拍第一页| 欧美最猛黑人xxxx| av电影在线免费观看| 蜜桃av中文字幕| 日本一区二区三区中文字幕| 亚洲一区av| 国产中文字幕免费观看| 欧美污视频久久久| 免费精品99久久国产综合精品| 亚洲午夜精品久久久久久久久| 欧美男女交配| 亚洲黄色免费av| 久久久久国产精品视频| 91亚洲精品在线观看| 午夜影院在线观看欧美| 亚洲春色一区二区三区| 国产精品一二三区| 国产成人短视频在线观看| 中文精品一区二区| 91一区二区在线观看| 久久中文字幕精品| 亚洲精品孕妇| 国产又爽又黄网站亚洲视频123| 国产一区久久| www夜片内射视频日韩精品成人| 欧美日韩视频一区二区| av福利在线导航| 亚洲热app| 精品少妇一区二区三区密爱| 91久久精品无码一区二区| 麻豆免费视频网站入口| 97成人免费视频| 欧美日韩一区小说| 毛片视频免费观看| 4438全国亚洲精品观看视频| 欧美大喷水吹潮合集在线观看| bbw丰满大肥奶肥婆| 中文字幕91视频| 国产成人亚洲欧洲在线| 色婷婷综合久色| 四虎国产精品永久地址998| 亚洲色图 校园春色| 中文字幕精品—区二区四季| 亚洲精品乱码久久久久久蜜桃图片| 一区二区三区 在线观看视频| 色偷偷噜噜噜亚洲男人的天堂| 成人免费毛片a| 一区二区精品视频在线观看| 91免费精品视频| 国产精品美女网站| 手机看片福利盒子久久| 久久国产成人午夜av影院| 欧美日韩亚洲一区| 在线成人私人影院| 天堂久久一区| 欧美一区二区三区在线观看免费| 福利视频久久| 亚洲高清二区| 中文字幕伊人| 1000部精品久久久久久久久| 亚洲男女av一区二区| 奇米综合一区二区三区精品视频| 国产精品www994| 久久国产福利| 亚洲香蕉网站| 在线观看视频欧美| 国产伦精品一区二区三区88av| 99久久久国产精品免费调教网站| 中文字幕综合在线| 亚洲欧美一二三| 欧美视频网址| www欧美日韩| 欧美在线视频不卡| 亚洲私拍自拍| 久久久视频精品| 欧美三级资源在线| 久久久亚洲精品石原莉奈| a级女人18毛片| 国产99久久久久| 影音先锋国产资源| 久久久久久噜噜噜久久久精品| 高h调教冰块play男男双性文| 日韩极品在线观看| 欧美熟妇乱码在线一区| 日本韩国欧美中文字幕| 伊人久久大香线蕉av超碰演员| 国产在线a不卡| 成人一区二区| 久久久人人爽| 国产福利av网站| 欧美国产日韩一区二区在线观看| 青青草综合视频| 99热成人精品热久久66| 黄色在线播放| vam成人资源在线观看| av片在线免费看| 亚洲一级不卡视频| 国内精品国产三级国产在线专| 亚洲一区二区在| 久久精品成人欧美大片免费| 最新av番号| 日韩av在线网站| 欧美日韩国产在线看| 久久免费黄色网址| 波多野结衣在线一区二区| 日产国产精品精品a∨| 免费看a在线观看| 男人舔女人下部高潮全视频| 黄页网址大全在线播放| 女同一区二区| eeuss在线观看| 亚洲色图欧美在线| 日韩av色综合| av在线导航| 国产女人水真多18毛片18精品视频| 一区二区三区日韩欧美| 亚洲在线观看视频网站| 亚洲av无码一区东京热久久| 在线免费看视频| 中文字幕亚洲情99在线| 伊人青青综合网| 亚洲裸体俱乐部裸体舞表演av| 操欧美女人视频| 夜夜嗨av一区二区三区免费区| 成人系列视频| 波多野在线播放| 在线成人亚洲| 九九精品久久| 日本黄网免费一区二区精品| 国产成人福利片| 99精品99| 青青操在线观看视频| 亚洲日本激情| 国产盗摄精品一区二区三区在线| 丰满少妇xbxb毛片日本| 精品久久久国产| 亚洲少妇中文在线| 国产精品.xx视频.xxtv| 亚洲一区二区三区777| 久久久久噜噜噜亚洲熟女综合| 国产ts一区| 国产又大又黄视频| 亚洲欧美一区二区三区不卡| 97caopor国产在线视频| 国产精品白浆| 国产精品日韩| 影音先锋男人的网站| 亚洲1区在线观看| 美女网站在线看| 欧美日韩另类字幕中文| 中文字幕免费高清电视剧网站在线观看| 怡红院av久久久久久久| 欧美二区三区的天堂| 国产精品v欧美精品v日本精品动漫| 黄色片视频在线播放| 久色视频在线观看| 亚洲国产国产亚洲一二三| 男女av一区三区二区色多| 97精品国产综合久久久动漫日韩| 麻豆av观看| 天天躁日日躁狠狠躁免费麻豆| 精品在线一区二区| 91九色最新地址| 国产精品久久久久久av下载红粉| 黄页网站免费观看| 亚洲欧美国产一区二区| 精品性高朝久久久久久久| 色综合久久综合中文综合网| 国产又粗又猛又爽又黄的| 吉吉日韩欧美| 欧美综合一区第一页| 五月天综合在线| 久久久久天天天天| 小小水蜜桃在线观看| 亚洲精品午夜av福利久久蜜桃| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲无码久久久久久久| 中文字幕五月天| 精品久久亚洲一级α| 精品国产综合| 免费毛片在线| 中文字幕日韩欧美在线| 国产超碰人人模人人爽人人添| 国产精品伊人久久| 99久久精品久久久久久清纯| 黄色成人在线免费观看| 亚洲精品乱码久久久久久黑人| 综合久久五月天| 亚洲最新永久观看在线| 欧美精品午夜视频| 久久久精品国产**网站| 欧美日本在线视频中文字字幕| 欧洲免费av| 成人性爱视频在线观看| 国产成人激情小视频| 天天做天天爱综合| 欧美视频在线观看免费网址| 成人免费看视频网站| 风间由美中文字幕在线看视频国产欧美| 视频一区视频二区在线观看| 国产精品久久久乱弄| 久久免费视频一区| 国产精品无码久久久久久| 青青青爽久久午夜综合久久午夜| 国产精品∨欧美精品v日韩精品| 激情亚洲另类图片区小说区| 欧美mv日韩mv国产网站| 久久久成人精品| 在线看三级电影| 男女人搞j网站| 91精品国产高清91久久久久久| 欧美成人三级在线视频| 久久av在线播放| 最新在线观看av网站| 久久综合网hezyo| 蜜乳av一区二区| 亚洲国产精品久久91精品| 欧美成人高清视频| 男女无套免费视频网站动漫| 91黄色小网站| 亚洲一线二线三线视频| 国产午夜亚洲精品不卡| 亚洲第一黄色网| 午夜剧场日韩| 亚洲美洲欧洲综合国产一区| 波多野结衣网站| 日韩国产福利| 91麻豆精品视频| 福利精品视频| 精品三级国产| 国产在线精品一区免费香蕉| 国产福利视频一区二区三区| 免费在线看污片| 欧美二区三区| 久久精品人妻一区二区三区| 久视频在线观看| 超碰在线94| 日韩av资源网| 欧美 日韩 国产 成人 在线观看| 日韩欧美三级在线观看| 五月天婷亚洲天综合网精品偷| 小处雏高清一区二区三区| 亚洲婷婷国产精品电影人久久| 精品伊人久久大线蕉色首页| 老**午夜毛片一区二区三区| 亚洲精品18在线观看| 色婷婷av一区二区三区软件| 欧美怡红院视频一区二区三区| 成人高潮成人免费观看| 久久青草精品视频免费观看| 亚洲成人五区| 国产高清一区二区三区四区| 中文字幕一区二区日韩精品绯色| 日韩和的一区二区| 国产99视频精品免费视频36| 色播视频在线观看| 欧美日韩国产在线一区| 国产资源在线一区| 台湾佬成人中文网222vvv| 可以免费在线看黄的网站| 成人ww免费完整版在线观看| 国产精品成人免费观看| 日本二区在线观看| 中文字幕第100页| 性视频在线播放| 成人毛片高清视频观看| 免费成人高清在线视频theav| 精品一区二区三区av| 国产精品国产高清国产| 国产精品一区二区资源| 精品一区二区三区免费视频| 日本一区免费观看| 国产精品久久久亚洲一区| 午夜免费啪视频观看视频| 日韩国产在线不卡视频| 日韩欧美一起| 精品国产av鲁一鲁一区| 老师我好爽再深一点的视频| 日韩高清人体午夜| 啦啦啦中文高清在线视频| 黄色网战入口| 99r国产精品| 19禁羞羞电影院在线观看| 日本欧洲一区| 免费人成黄页网站在线一区二区| 黄色成人影院| 怡红院红怡院欧美aⅴ怡春院| 国产精品制服诱惑| 粉嫩av一区| www.亚洲在线| 中文字幕亚洲综合久久| 亚洲av熟女国产一区二区性色| 国产在线精品免费av| 一区二区三区欧美成人| 欧美三级中文字幕在线观看| 国产美女亚洲精品7777| 亚洲播播91| 日本黄色网址大全| 中文字幕你懂的|