透視表是壹種可以對數據動態排布並且分類匯總的表格格式。利用透視表可以快速地進行分類匯總,自由組合字段聚合計算。
使用數據透視表的壹個挑戰是,妳需要確保妳理解妳的數據,並清楚地知道妳想通過透視表解決什麽問題。其實,雖然pivot_table看起來只是壹個簡單的函數,但是它能夠快速地對數據進行強大的分析。
其實非常的簡單,只需要選定我們想要進行透視的表,然後點擊菜單欄中的插入透視表。
在本文中,將會跟蹤壹個銷售渠道(也稱為漏鬥)。基本的問題是,壹些銷售周期很長(可以想壹下“企業軟件”、“資本設備”等),而管理者想更詳細地了解它壹整年的情況。
其實我們只需要將不同的字段拖入到不同的區域中即可,為了方便展示數據,我們可以右鍵關鍵字段,然後將其選擇上移,這樣我們可以實現數據的多級展示。
這裏我們註意壹個左下角的功能,叫做延遲布局更新,這個當我們的數據量比較大的時候,比如說十萬個數據,我們就可以選定這個延遲更新,其實就是設置當我們的字段設置完成之後才進行數據更新,可以最大程度保證我們操作的流暢性。
如果我們對數據透視表的順序有些不滿意,那我們就要按照我們自己的意願進行順序的修改,比如說我們選擇升序和降序。
當然了,我們也可以直接在選定區域的時候直接選擇插入壹個透視圖,壹般默認是柱狀圖。
這就是數據透視表與數據透視圖的基本操作,這是比較簡單的基礎內容。
數據透視表可以隨時隨地進行數據源的更改,數據源變更後進行簡單的更新就可反映到數據報表中,有兩種方式,第壹種是數據透視表刷新:如果數據源中的數值進行了更新,刷新即可。如果是數據源的結構或布局變更了,這時就采用更改數據源的方式。
計算字段極大擴展了數據透視表的計算功能,比如原始數據表中有壹列數據為銷售單價,有壹列數據為數量。那麽在數據透視表中可以通過計算字段輸入公式”=單價*數量“,來求出銷售額。
pandas中的函數pivot_table可以實現數據透視表,它的參數如下,下面我們來壹個個的學習。我們的數據源和上面excel的壹樣。
我們將上表中“Status”列定義為category,並按我們想要的查看方式設置順序(可選)
此外,可以有多個索引。實際上,大多數的pivot_table參數可以通過列表獲取多個值。
我們上面將“Name”,“Rep”列和“Manager”列進行對應分組,那麽現在來實現數據聚合。
“Price”列會自動計算數據的平均值,但是我們也可以對該列元素進行計數或求和。要添加這些功能,使用aggfunc和np.sum就很容易實現。
aggfunc可以包含很多函數,下面就讓我們嘗試壹種方法,即使用numpy中的函數mean和len來進行計算。
如果我們想通過不同產品來分析銷售情況,那麽變量“columns”將允許我們定義壹個或多個列。
pivot_table中壹個令人困惑的地方是“columns(列)”和“values(值)”的使用。我們只要記住,變量“columns(列)”是可選的,它提供壹種額外的方法來分割妳所關心的實際值。然而,聚合函數aggfunc最後是被應用到了變量“values”中妳所指定的字段上。
結果裏有很多NaN,如果想移除它們,我們可以使用“fill_value”將其設置為0。
如何查看壹些總和數據呢?相當於excel中的總計,通過“margins=True”就可以為我們實現這種功能。
下面,讓我們以更高的管理者角度來分析此渠道。根據我們前面對category的定義,註意現在“Status”是如何排序的。
為了對妳選擇的不同值執行不同的函數,妳可以向aggfunc傳遞壹個字典。
如果只想查看壹個管理者(例如Debra Henley)的數據,可以這樣過濾:
查看所有的暫停(pending)和成功(won)的交易,如下:
實現同時過濾多個條件:
希望本文的內容對大家的學習或者工作能帶來壹定的幫助,每天進步壹點點,加油?。