今天學(xué)習(xí)的是第四章--分組唠摹,我覺得是非常重要和有用的pandas知識(shí)。這章主要圍繞著groubpy函數(shù)奉瘤,介紹了在其之上的agg勾拉、transform煮甥、apply等函數(shù)的應(yīng)用。
教材中總結(jié)了分組的三大操作:聚合藕赞、變換和過濾成肘。
1. 聚合:
groupby對(duì)象已定義了一些聚合函數(shù),如max等斧蜕。但仍有不方便之處双霍,所以引入了agg函數(shù)。agg函數(shù)的優(yōu)勢(shì)在于:
(1)agg函數(shù)可同時(shí)使用多個(gè)函數(shù)批销。
agg同時(shí)使用多個(gè)函數(shù)
(2)可對(duì)特定的列使用特定的聚合函數(shù)洒闸。
agg對(duì)特定的列使用特定的聚合函數(shù)
(3) 使用自定義函數(shù)。
agg使用自定義函數(shù)
(4) 聚合結(jié)果重命名均芽。
agg聚合結(jié)果重命名
變換和過濾
變換函數(shù)的返回值為同長(zhǎng)度的序列丘逸。當(dāng)用自定義變換時(shí)需要使用 transform 方法,被調(diào)用的自定義函數(shù)掀宋, 其傳入值為數(shù)據(jù)源的序列 深纲,與 agg 的傳入類型是一致的,其最后的返回結(jié)果是行列索引與數(shù)據(jù)源一致的 DataFrame 布朦。
跨列分組
這種應(yīng)用場(chǎng)景只能使用apply函數(shù)了囤萤。
練習(xí)
Ex1題目
1. 先過濾出所屬 Country 數(shù)超過2個(gè)的汽車,即若該汽車的 Country 在總體數(shù)據(jù)集中出現(xiàn)次數(shù)不超過2則剔除是趴,再按 Country 分組計(jì)算價(jià)格均值、價(jià)格變異系數(shù)澄惊、該 Country 的汽車數(shù)量唆途,其中變異系數(shù)的計(jì)算方法是標(biāo)準(zhǔn)差除以均值,并在結(jié)果中把變異系數(shù)重命名為 CoV 掸驱。
Ex1.1
2. 按照表中位置的前三分之一肛搬、中間三分之一和后三分之一分組,統(tǒng)計(jì) Price 的均值毕贼。
這道題可以仿照‘分組依據(jù)的本質(zhì)’那一段的方法來做温赔。
Ex1.2
3. 對(duì)類型 Type 分組,對(duì) Price 和 HP 分別計(jì)算最大值和最小值鬼癣,結(jié)果會(huì)產(chǎn)生多級(jí)索引陶贼,請(qǐng)用下劃線把多級(jí)列索引合并為單層索引。
計(jì)算最大值和最小值使用agg函數(shù)就好了待秃;多級(jí)索引合并為單層索引用到了第三章的知識(shí)拜秧。
Ex1.3
4 對(duì)類型 Type 分組,對(duì) HP 進(jìn)行組內(nèi)的 min-max 歸一化章郁。
分組再組內(nèi)歸一化枉氮,返回的應(yīng)該為同長(zhǎng)度的序列,此時(shí)應(yīng)該使用transform函數(shù)。
Ex1.4
5. 對(duì)類型 Type 分組聊替,計(jì)算 Disp. 與 HP 的相關(guān)系數(shù)楼肪。
跨列計(jì)算肯定要考慮使用apply函數(shù)了。
Ex1.5