import pandas as pd
# 讀取college資料集,分組後,統計本科生的sat數學成績資訊
college = pd.read_csv('data/college.csv')
cg = college.groupby(['stabbr', 'relaffil'])['ugds', 'satmtmid'] \
.agg(['count', 'min', 'max']).head(6)
cg
ugds
satmtmid
count
minmax
count
minmax
stabbr
relaffilak0
7109.0
12865.0
0nan
nan1
327.0
275.0
1503.0
503.0al0
7112.0
29851.0
13420.0
590.0118
13.0
3033.0
8400.0
560.0ar0
6818.0
21405.0
9427.0
565.0114
20.0
4485.0
7495.0
600.0
# 行索引的兩級都有名字,而列索引沒有名字。用rename_axis給列索引的兩級命名
cg = cg.rename_axis(['agg_cols', 'agg_funcs'], axis='columns')
cg
agg_cols
ugds
satmtmid
agg_funcs
count
minmax
count
minmax
stabbr
relaffilak0
7109.0
12865.0
0nan
nan1
327.0
275.0
1503.0
503.0al0
7112.0
29851.0
13420.0
590.0118
13.0
3033.0
8400.0
560.0ar0
6818.0
21405.0
9427.0
565.0114
20.0
4485.0
7495.0
600.0
# 將agg_funcs列移到行索引
cg.stack('agg_funcs').head()
agg_cols
ugds
satmtmid
stabbr
relaffil
agg_funcsak0
count
7.00.0
min109.0
nanmax
12865.0
nan1
count
3.01.0
min27.0
503.0
# stack預設是將列放到行索引的最內層,可以使用swaplevel改變層級
cg.stack('agg_funcs').swaplevel('agg_funcs', 'stabbr', axis='index').head()
agg_cols
ugds
satmtmid
agg_funcs
relaffil
stabbr
count0ak
7.00.0
min0
ak109.0
nanmax0ak
12865.0
nancount1ak
3.01.0
min1
ak27.0
503.0
# 在此前的基礎上再做sort_index #.swaplevel 重排層次化索引分級順序
cg.stack('agg_funcs').swaplevel('agg_funcs', 'stabbr', axis='index') \
.sort_index(level='relaffil', axis='index') \
.sort_index(level='agg_cols', axis='columns').head(6)
agg_cols
satmtmid
ugds
agg_funcs
relaffil
stabbr
count0ak
0.07.0
al13.0
71.0
ar9.0
68.0
max0
aknan
12865.0
al590.0
29851.0
ar565.0
21405.0
# 對一些列做stack,對其它列做unstack
cg.stack('agg_funcs').unstack(['relaffil', 'stabbr'])
agg_cols
ugds
satmtmid
relaffil01
0101
0101
01stabbr
akak
alal
arar
akak
alal
arar
agg_funcs
count
7.03.0
71.0
18.0
68.0
14.0
0.01.0
13.0
8.09.0
7.0min
109.0
27.0
12.0
13.0
18.0
20.0
nan503.0
420.0
400.0
427.0
495.0
max12865.0
275.0
29851.0
3033.0
21405.0
4485.0
nan503.0
590.0
560.0
565.0
600.0
# 對所有列做stack,會返回乙個series
cg.stack(['agg_funcs', 'agg_cols']).head(12)
'''stabbr relaffil agg_funcs agg_cols
ak 0 count ugds 7.0
satmtmid 0.0
min ugds 109.0
max ugds 12865.0
1 count ugds 3.0
satmtmid 1.0
min ugds 27.0
satmtmid 503.0
max ugds 275.0
satmtmid 503.0
al 0 count ugds 71.0
satmtmid 13.0
dtype: float64
'''
# 刪除行和列索引所有層級的名稱
cg.rename_axis([none, none], axis='index').rename_axis([none, none],axis='columns')
ugds
satmtmid
count
minmax
count
minmaxak0
7109.0
12865.0
0nan
nan1
327.0
275.0
1503.0
503.0al0
7112.0
29851.0
13420.0
590.0118
13.0
3033.0
8400.0
560.0ar0
6818.0
21405.0
9427.0
565.0114
20.0
4485.0
7495.0
600.0
為了更容易的找到工作 一定要看哦
應聘時最漂亮的回答 11 你覺得你個性上最大的優點是什麼?說說你最大的缺點?你對薪資的要求?你對加班的看法?如果通過這次面試我們錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦?工作中難以和同事 上司相處,你該怎麼辦?你對於我們公司了解多少?最能概括你自己的三個詞是什麼?你的業餘愛好是什...
《spring in action》似乎更容易一點
那本professional似乎還是太專業了一點,大段的論述讀起來頭皮發麻,我在想還是去買本書,這電子版太煩人了。以前看過action,印象不是太好,這次找出來再看,似乎感覺好了不少。我覺得一本入門的書不要求全和深度,最好是多些例子,圖表和比喻什麼的。真希望有本spring傻瓜書,呵呵。如果acti...
制度和流程是為了更專注
我夢想中的工作,就是登入工作平台後,今天要作的工作一目了然地呈現在我的桌面上。每一項都是簡要而全面,既可以看到工作的全貌,有可以了解足夠的細節。我今天的每一項工作也是非常清楚的列表,計畫什麼時間開始,什麼時間結束,同哪些客戶有聯絡,需要同哪些同事協作。甚至,我作這些計畫的工作,也是一項任務,列在列表...