dataframe.groupby(by=none, axis=0, level=none, as_index=true, sort=true, group_keys=true, squeeze=false, **kwargs)
講真的,非常不能理解pandas官方文件的這種表達形式,讓人真的有點摸不著頭腦,example給得又少,引數也不給得很清楚,不過沒有辦法,還是只能選擇原諒他。
基本用法我這裡就不呈現了,我覺得用過一次的人基本不會忘記,這裡我主要寫一下我用過的關係groupby函式的疑惑:
這個問題著實困擾了我很久,經過研究,找了一些可能幫助理解的東西。先舉乙個例子:
importabpandas as pd
df = pd.dataframe()
cq01
13li1
1-14zhang21
05zhang32
16li4
227wang
a b c q
0113 li
3216 li
a b c q
0113 li
3216 li
a b c q
4227 wang
a b c q
11 -1
4 zhang
2105 zhang
df.groupby('q').agg(lambda x:print(x))
013
2 name: a, dtype: int6442
name: a, dtype: int6411
21name: a, dtype: int6401
31name: b, dtype: int6442
name: b, dtype: int64
1 -120
name: b, dtype: int6403
36name: c, dtype: int6447
name: c, dtype: int6414
25name: c, dtype: int64
ab
cqlinone
none
none
wang
none
none
none
zhang
none
none
none
不過我覺得這一點區別在實際應用中分別並不大,因為ipython的out輸出對於這兩個函式幾乎沒有差別,不管是處理一列還是一表。
我覺得agg()
有一點讓我很開心就是他可以同時傳入多個函式,簡直不要太方便哈哈:
df.groupby('q').agg(['mean','std','count','max'])
ab
cmean
stdcount
maxmean
stdcount
maxmean
stdcount
maxq
li1.5
0.70710722
1.00.00000021
4.52.12132026
wang
2.0nan12
2.0nan12
7.0nan17
zhang
1.00.00000021
-0.5
0.70710720
4.50.70710725
這個也是我剛剛學會的,groupby的plot簡直不要太方便了:(不過這個例子選的不是很好)
這個是困擾我最多的乙個問題,因為如果我groupby的時候選擇了兩個level,之後的data總是呈現透視表的形式,如:
muldf = df.groupby(['q','a']).agg('mean')
print(muldf)
b c
q a
li 1
1.03.0
21.0
6.0 wang 2
2.07.0
zhang 1 -0.5
4.5
我開始甚至以為這應該不是dataframe,是乙個我可能沒注意過的乙個東西,可是後來我發現,這不過是multiindex形式的一種dataframe罷了。
muldf.b
q a
li 1
1.02
1.0 wang 2
2.0 zhang 1 -0.5
name: b, dtype: float64
如果要選擇某乙個index,用`xs()`函式:muldf.xs('li')
bc
a11.03.0
21.0
6.0ps:有個問題困擾好久了,怎麼把multiindex物件變回原來的形式呢。如:
q a
li 1
1.0li 2
1.0wang 2
2.0zhang 1 -0.5
求大佬解答,感激不盡~ pandas聚合函式groupby
1.groupby聚合函式彙總 min 最小值 max 最大值 sum 求和 mean 平均數 std 標準差 size 按照groupby的值計算該值的個數 與count函式的區別在於,size函式會計算nan值,而count函式不會計算nan值 count 計算個數 nunique 去掉重複值後...
pandas分組運算(groupby)
按a列分組 groupby 獲取其他列的均值 方法1 b df b groupby df a mean 按a列分組,獲取b列的均值 print b 方法2 b df.ix 1 groupby df.ix 0 mean 按a列分組 0對應a列,1對應b列 獲取b列的均值 print b 方法3 2.聚...
pandas資料處理之groupby的常用用法
groupby by none,axis 0,level none,as index true,sort true,group keys true,squeeze false,kwargs 用於確定groupby的組。如果by是乙個函式,那麼會呼叫物件索引的每個值。如果傳遞了乙個dict或serie...