国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python DataFrame.groupby()聚合函數(shù),分組級運(yùn)算

2020-02-15 23:00:07
字體:
供稿:網(wǎng)友

pandas提供了一個靈活高效的groupby功能,它使你能以一種自然的方式對數(shù)據(jù)集進(jìn)行切片、切塊、摘要等操作。根據(jù)一個或多個鍵(可以是函數(shù)、數(shù)組或DataFrame列名)拆分pandas對象。計(jì)算分組摘要統(tǒng)計(jì),如計(jì)數(shù)、平均值、標(biāo)準(zhǔn)差,或用戶自定義函數(shù)。對DataFrame的列應(yīng)用各種各樣的函數(shù)。應(yīng)用組內(nèi)轉(zhuǎn)換或其他運(yùn)算,如規(guī)格化、線性回歸、排名或選取子集等。計(jì)算透視表或交叉表。執(zhí)行分位數(shù)分析以及其他分組分析。

groupby分組函數(shù):

  返回值:返回重構(gòu)格式的DataFrame,特別注意,groupby里面的字段內(nèi)的數(shù)據(jù)重構(gòu)后都會變成索引

  groupby(),一般和sum()、mean()一起使用,如下例:

先自定義生成數(shù)組

import pandas as pddf = pd.DataFrame({'key1':list('ababa'),  'key2': ['one','two','one','two','one'],  'data1': np.random.randn(5),  'data2': np.random.randn(5)})print(df) data1 data2 key1 key20 -1.313101 -0.453361 a one1 0.791463 1.096693 b two2 0.462611 1.150597 a one3 -0.216121 1.381333 b two4 0.077367 -0.282876 a one

應(yīng)用groupby,分組鍵均為Series(譬如df[‘xx']),實(shí)際上分組鍵可以是任何長度適當(dāng)?shù)臄?shù)組

#將df['data1']按照分組鍵為df['key1']進(jìn)行分組grouped=df['data1'].groupby(df['key1'])print(grouped.mean())key1a -0.257707b 0.287671Name: data1, dtype: float64states=np.array(['Ohio','California','California','Ohio','Ohio'])years=np.array([2005,2005,2006,2005,2006])#states第一層索引,years第二層分層索引print(df['data1'].groupby([states,years]).mean())California 2005 0.791463 2006 0.462611Ohio 2005 -0.764611 2006 0.077367Name: data1, dtype: float64#df根據(jù)‘key1'分組,然后對df剩余數(shù)值型的數(shù)據(jù)運(yùn)算df.groupby('key1').mean() data1 data2key1  a -0.257707 0.138120b 0.287671 1.239013#可以看出沒有key2列,因?yàn)閐f[‘key2']不是數(shù)值數(shù)據(jù),所以被從結(jié)果中移除。默認(rèn)情況下,所有數(shù)值列都會被聚合,雖然有時可能被過濾為一個子集。

對分組進(jìn)行迭代

#name就是groupby中的key1的值,group就是要輸出的內(nèi)容for name, group in df.groupby('key1'): print (name,group)a data1 data2 key1 key20 -1.313101 -0.453361 a one2 0.462611 1.150597 a one4 0.077367 -0.282876 a oneb data1 data2 key1 key21 0.791463 1.096693 b two3 -0.216121 1.381333 b two

對group by后的內(nèi)容進(jìn)行操作,可轉(zhuǎn)換成字典

#轉(zhuǎn)化為字典piece=dict(list(df.groupby('key1'))){'a': data1 data2 key1 key2 0 -1.313101 -0.453361 a one 2 0.462611 1.150597 a one 4 0.077367 -0.282876 a one, 'b': data1 data2 key1 key2 1 0.791463 1.096693 b two 3 -0.216121 1.381333 b two}#對字典取值value = piece['a']

groupby默認(rèn)是在axis=0上進(jìn)行分組的,通過設(shè)置也可以在其他任何軸上進(jìn)行分組

grouped=df.groupby(df.dtypes, axis=1)value = dict(list(grouped))print(value){dtype('float64'): data1 data20 -1.313101 -0.4533611 0.791463 1.0966932 0.462611 1.1505973 -0.216121 1.3813334 0.077367 -0.282876, dtype('O'): key1 key20 a one1 b two2 a one3 b two4 a one}            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 繁峙县| 延边| 阿拉善右旗| 濮阳市| 中阳县| 中宁县| 高雄市| 天门市| 阆中市| 区。| 莎车县| 宝丰县| 贡山| 龙口市| 浑源县| 司法| 手机| 崇文区| 青海省| 万州区| 鄂州市| 闸北区| 南郑县| 城口县| 临沂市| 汉中市| 察哈| 什邡市| 来凤县| 汤阴县| 新蔡县| 台东县| 陵川县| 宝应县| 旌德县| 和顺县| 蒙阴县| 梁山县| 泸水县| 河北省| 喀什市|