pandas基礎學習筆記三

2021-10-05 12:15:49 字數 1882 閱讀 4016

二、groupby函式

三、聚合、過濾和變換

第3章 分組.

經過groupby後會生成乙個groupby物件,該物件本身不會返回任何東西,只有當相應的方法被呼叫才會起作用

grouped_single = df.groupby(

'school'

)# 根據某一列分組

grouped_single.get_group(

's_1'

).head(

)# 取出某乙個組

grouped_mul = df.groupby(

['school'

,'class'])

#根據某幾列分組

grouped_mul.get_group(

('s_2'

,'c_4'))

grouped_single.size(

)# 組容量與組數

grouped_mul.size(

)grouped_single.ngroups

grouped_mul.ngroups

for name,group in grouped_single:

# 組的遍歷

print

(name)

display(group.head())

#level引數(用於多級索引)和axis引數

df.set_index(

['gender'

,'school'])

.groupby(level=

1,axis=0)

.get_group(

's_1'

).head(

)

(a)檢視所有可呼叫的方法

groupby物件可以使用相當多的函式,靈活程度很高.

(b)分組物件的head和first

對分組物件使用head函式,返回的是每個組的前幾行,而不是資料集前幾行.

(c)分組依據

對於groupby函式而言,分組的依據是非常自由的,只要是與資料框長度相同的列表即可,同時支援函式型分組

(d)groupby的操作

可以用選出groupby物件的某個或者某幾個列.

(e)連續型變數分組

例如利用cut函式對數學成績分組.

(a)常用聚合函式

所謂聚合就是把一堆數,變成乙個標量,因此mean/sum/size/count/std/var/sem/describe/first/last/nth/min/max都是聚合函式

(b)同時使用多個聚合函式:

利用元組進行重新命名或指定哪些函式作用哪些列等。

(c)還可以使用自定義函式

(d)利用namedagg函式進行多個聚合

注意:不支援lambda函式,但是可以使用外接的def函式

(e)帶引數的聚合函式

注意:如果需要使用多個函式,並且其中至少有乙個帶引數,則使用wrap技巧

filter函式是用來篩選某些組的(務必記住結果是組的全體),因此傳入的值應當是布林標量

(a)傳入物件:transform函式中傳入的物件是組內的列,並且返回值需要與列長完全一致

如果返回了標量值,那麼組內的所有元素會被廣播為這個值。

(b)利用變換方法進行組內標準化

(c)利用變換方法進行組內缺失值的均值填充

對於我這樣會一點python程式設計的菜鳥來說,以前只會用的pandas是,import pandas as pd, 然後就是pd.read_csv()……等如此簡單的操作,以前以為pandas是乙個讀取資料的,這一次進入到這麼系統的學習pandas中,發現了它的強大。

ps. 還是先學好基礎吧,感覺這些題目,對於目前的我來說還是有難度的,學習之路,未完待續……

Pandas基礎學習筆記

python data analysis library 或 pandas 是基於numpy 的一種工具,該工具是為了解決資料分析任務而建立的。pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法 impo...

pandas學習筆記(三)

生成乙個以2017 01開始,月為頻率的時間構造器 pd.period 引數 乙個時間戳 freq p pd.period 2017 freq m print p 通過加減整數,將週期整體移動 print p 1 print p 2 輸出 2017 01 2017 02 2016 11 prng p...

pandas學習筆記 三

import pandas as pd import numpy as npdata pd.read csv student.csv data.head 學號姓名 班級年齡 01.0 小明1.0 7.01 2.0小華 1.06.0 23.0 小紅2.0 6.03 4.0小麗 3.08.0 45.0 ...