Python變形

1.長寬表的變形

什么是長表?什么是寬表?這個概念是對于某一個特征而言的。例如:一個表中把性別存儲在某一個列中虱朵, 那么它就是關于性別的長表;如果把性別作為列名,列中的元素是某一其他的相關特征數(shù)值,那么這個表是 關于性別的寬表。

1.1 pivot

pivot 是一種典型的長表變寬表的函數(shù)灶壶。對于一個基本的長變寬的操作而言,最重要的有三個要素杈曲,分別是變形后的行索引驰凛、需要轉(zhuǎn)到列索引的列胸懈, 以及這些列和行索引對應的數(shù)值,它們分別對應了 pivot 方法中的 index, columns, values 參數(shù)恰响。新生成表的 列索引是 columns 對應列的 unique 值趣钱,而新表的行索引是 index 對應列的 unique 值,而 values 對應了想 要展示的數(shù)值列胚宦。

利用 pivot 進行變形操作需要滿足唯一性的要求首有,即由于在新表中的行列索引對應了唯一的 value ,因此原 表中的 index 和 columns 對應兩個列的行組合必須唯一枢劝。例如绞灼,現(xiàn)在把原表中第二行張三的數(shù)學改為語文就 會報錯,這是由于 Name 與 Subject 的組合中兩次出現(xiàn) (”San Zhang”, ”Chinese”) 呈野,從而最后不能夠確定到 底變形后應該是填寫 80 分還是 75 分。

pandas 從 1.1.0 開始印叁,pivot 相關的三個參數(shù)允許被設置為列表被冒,這也意味著會返回多級索引。這里構(gòu)造一 個相應的例子來說明如何使用:下表中六列分別為班級轮蜕、姓名昨悼、測試類型(期中考試和期末考試)、科目跃洛、成 績率触、排名。

根據(jù)唯一性原則汇竭,新表的行索引等價于對 index 中的多列使用 drop_duplicates 葱蝗,而列索引的長度為 values 中的元素個數(shù)乘以 columns 的唯一組合數(shù)量(與 index 類似)。

1.2 pivot_table

pivot 的使用依賴于唯一性條件细燎,那如果不滿足唯一性條件两曼,那么必須通過聚合操作使得相同行列組合對應 的多個值變?yōu)橐粋€值。例如玻驻,張三和李四都參加了兩次語文考試和數(shù)學考試悼凑,按照學院規(guī)定,最后的成績是 兩次考試分數(shù)的平均值璧瞬,此時就無法通過 pivot 函數(shù)來完成户辫。

1.3 melt

長寬表只是數(shù)據(jù)呈現(xiàn)方式的差異,但其包含的信息量是等價的嗤锉,前面提到了利用 pivot 把長表轉(zhuǎn)為寬表渔欢,那 么就可以通過相應的逆操作把寬表轉(zhuǎn)為長表,melt 函數(shù)就起到了這樣的作用档冬。

1.4 wide_to_long

melt 方法中膘茎,在列索引中被壓縮的一組值對應的列元素只能代表同一層次的含義桃纯,即 values_name 。現(xiàn)在 如果列中包含了交叉類別披坏,比如期中期末的類別和語文數(shù)學的類別态坦,那么想要把 values_name 對應的 Grade 擴充為兩列分別對應語文分數(shù)和數(shù)學分數(shù),只把期中期末的信息壓縮棒拂,這種需求下就要使用 wide_to_long 函數(shù)來完成伞梯。

2 索引的變形

2.1 stack 與 unstack

unstack 函數(shù)的作用是把行索引轉(zhuǎn)為列索引

unstack 的主要參數(shù)是移動的層號,默認轉(zhuǎn)化最內(nèi)層帚屉,移動到列索引的最內(nèi)層谜诫,同時支持同時轉(zhuǎn)化多個層

類似于 pivot 中的唯一性要求,在 unstack 中必須保證 被轉(zhuǎn)為列索引的行索引層和 被保留的行索引層構(gòu)成 的組合是唯一的攻旦,例如把前兩個列索引改成相同的破壞唯一性喻旷,那么就會報錯

與 unstack 相反,stack 的作用就是把列索引的層壓入行索引牢屋,其用法完全類似且预。

2.2 聚合與變形的關系

在上面介紹的所有函數(shù)中,除了帶有聚合效果的 pivot_table 以外烙无,所有的函數(shù)在變形前后并不會帶來 values 個數(shù)的改變锋谐,只是這些值在呈現(xiàn)的形式上發(fā)生了變化。在上一章討論的分組聚合操作截酷,由于生成了新的行列 索引涮拗,因此必然也屬于某種特殊的變形操作,但由于聚合之后把原來的多個值變?yōu)榱艘粋€值迂苛,因此 values 的 個數(shù)產(chǎn)生了變化三热,這也是分組聚合與變形函數(shù)的最大區(qū)別。

3 其他變形函數(shù)

3.1 crosstab

crosstab 并不是一個值得推薦使用的函數(shù)三幻,因為它能實現(xiàn)的所有功能 pivot_table 都能完成康铭,并且速度更快。 在默認狀態(tài)下赌髓,crosstab 可以統(tǒng)計元素組合出現(xiàn)的頻數(shù)从藤,即 count 操作。例如統(tǒng)計 learn_pandas 數(shù)據(jù)集中 學校和轉(zhuǎn)系情況對應的頻數(shù)

3.2 explode

explode 參數(shù)能夠?qū)δ骋涣械脑剡M行縱向的展開锁蠕,被展開的單元格必須存儲 list, tuple, Series, np.ndarray 中的一種類型夷野。

3.3 get_dummies

get_dummies 是用于特征構(gòu)建的重要函數(shù)之一,其作用是把類別特征轉(zhuǎn)為指示變量荣倾。例如悯搔,對年級一列轉(zhuǎn)為 指示變量,屬于某一個年級的對應列標記為 1舌仍,否則為 0





?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妒貌,一起剝皮案震驚了整個濱河市通危,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灌曙,老刑警劉巖菊碟,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異在刺,居然都是意外死亡逆害,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門蚣驼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魄幕,“玉大人,你說我怎么就攤上這事颖杏〈吭桑” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵留储,是天一觀的道長队丝。 經(jīng)常有香客問我,道長欲鹏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任臭墨,我火速辦了婚禮赔嚎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胧弛。我一直安慰自己尤误,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布结缚。 她就那樣靜靜地躺著损晤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪红竭。 梳的紋絲不亂的頭發(fā)上尤勋,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音茵宪,去河邊找鬼最冰。 笑死,一個胖子當著我的面吹牛稀火,可吹牛的內(nèi)容都是我干的暖哨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼凰狞,長吁一口氣:“原來是場噩夢啊……” “哼篇裁!你這毒婦竟也來了沛慢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤达布,失蹤者是張志新(化名)和其女友劉穎团甲,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體往枣,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡伐庭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了分冈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圾另。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雕沉,靈堂內(nèi)的尸體忽然破棺而出集乔,到底是詐尸還是另有隱情,我是刑警寧澤坡椒,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布扰路,位于F島的核電站,受9級特大地震影響倔叼,放射性物質(zhì)發(fā)生泄漏汗唱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一丈攒、第九天 我趴在偏房一處隱蔽的房頂上張望哩罪。 院中可真熱鬧,春花似錦巡验、人聲如沸际插。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽框弛。三九已至,卻和暖如春捕捂,著一層夾襖步出監(jiān)牢的瞬間瑟枫,已是汗流浹背指攒。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工力奋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幽七。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓景殷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猿挚,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容