1. 程式人生 > >8 pandas模塊,多層索引

8 pandas模塊,多層索引

AS 構造 div image das bubuko 分享圖片 對象 現在

1 創建多層索引 1)隱式構造 最常見的方法是給DataFrame構造函數的index參數傳遞兩個或更多的數組 · Series也可以創建多層索引 技術分享圖片

技術分享圖片

技術分享圖片 技術分享圖片 一般情況下,兩層索引就夠用了 2)顯式構造 pd.MultiIndex · 使用數組 技術分享圖片 技術分享圖片

· 使用tuple 技術分享圖片

技術分享圖片 · 使用product 最簡單,推薦使用 技術分享圖片

技術分享圖片 2 對DataFrame列同樣可以設置多層索引 技術分享圖片 技術分享圖片

============================ 練習8: 1 創建一個DataFrame,表示張三、李四期中、期末各科成績。 ============================ 3 多層索引對象的索引與切片操作 1)Series的操作 【重要】對於Series來說,直接中括號[]與使用.loc()完全一樣,因此,推薦使用中括號索引和切片。 (1)索引 技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片 技術分享圖片 技術分享圖片 #第一個參數相當於多層索引的第一維,第二個參數就是第二維了 技術分享圖片

技術分享圖片 #把兩個參數寫在一起,會將整體作為一個參數,就把整體中的所有的參數都作為一維參數,能查到的就返回,查不到的就不返回,一維中沒有期中,所以只返回了張三的查詢結果,看看那下面這張截圖就知道怎麽回事了。 技術分享圖片 技術分享圖片

(2)切片 技術分享圖片 技術分享圖片 技術分享圖片

技術分享圖片

2)DataFrame的操作 (1)可以直接使用列名來進行索引 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片

技術分享圖片

技術分享圖片

(2)使用行索引需要用ix(),loc()等函數 技術分享圖片

技術分享圖片

技術分享圖片 技術分享圖片 【及其重要】推薦使用loc()函數 註意在對行索引的時候,若一級行索引還有多個,對二級行索引會遇到問題!也就是說,無法直接對二級索引進行索引,必須讓二級索引變成一級索引後才能對其進行索引! 技術分享圖片

技術分享圖片 同時對一二級索引進行檢索 技術分享圖片 技術分享圖片 技術分享圖片

技術分享圖片

=============================== 練習: 1 分析比較Series和DataFrame各種索引的方式,熟練掌握.loc()方法 2 假設張三再一次在其中考試的時候因為特殊原因放棄Python考試,如何實現 =============================== 4 索引的堆(先入後出)(stack) · stack() · unstack() 【小技巧】使用stack()的時候,level等於哪一個,哪一個就消失,出現在行裏。 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

【小技巧】使用unstack()的時候,level等於哪一個,哪一個就消失,出現在列裏。 技術分享圖片 技術分享圖片

技術分享圖片

技術分享圖片 ========================================== 練習: 1,使用unstack()將ddd變成兩行,分別為期中期末 2,使用unstack()將ddd變成四行,分別為四個科目 ========================================== 5 聚合操作 【註意】 · 需要指定axis · 【小技巧】和unstack()相反,聚合的時候,axis等於哪一個,哪一個就保留。 所謂的聚合操作:平均數,方差,最大值,最小值 ...... 技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 ======================================= 練習: 1 計算各個科目中期末平均成績 技術分享圖片 技術分享圖片

2 計算各個科目張三李四的最高分 技術分享圖片 技術分享圖片

8 pandas模塊,多層索引