
作者:俊欣
來源:關于數(shù)據(jù)分析與可視化
相信大家都用在Excel當中使用過數(shù)據(jù)透視表(一種可以對數(shù)據(jù)動態(tài)排布并且分類匯總的表格格式),也體驗過它的強大功能,在Pandas模塊當中被稱作是pivot_table,今天小編就和大家來詳細聊聊該函數(shù)的主要用途。
那我們第一步仍然是導入模塊并且來讀取數(shù)據(jù),數(shù)據(jù)集是北美咖啡的銷售數(shù)據(jù),包括了咖啡的品種、銷售的地區(qū)、銷售的利潤和成本、銷量以及日期等等
import pandas as pd def load_data(): return pd.read_csv('coffee_sales.csv', parse_dates=['order_date'])
那小編這里將讀取數(shù)據(jù)封裝成了一個自定義的函數(shù),讀者也可以根據(jù)自己的習慣來進行數(shù)據(jù)的讀取
df = load_data() df.head()
output
通過調用info()函數(shù)先來對數(shù)據(jù)集有一個大致的了解
df.info()
output
<class 'pandas.core.frame.DataFrame'> RangeIndex: 4248 entries, 0 to 4247 Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 order_date 4248 non-null datetime64[ns] 1 market 4248 non-null object 2 region 4248 non-null object 3 product_category 4248 non-null object 4 product 4248 non-null object 5 cost 4248 non-null int64 6 inventory 4248 non-null int64 7 net_profit 4248 non-null int64 8 sales 4248 non-null int64
dtypes: datetime64[ns](1), int64(4), object(4)
memory usage: 298.8+ KB
在pivot_table函數(shù)當中最重要的四個參數(shù)分別是index、values、columns以及aggfunc,其中每個數(shù)據(jù)透視表都必須要有一個index,例如我們想看每個地區(qū)咖啡的銷售數(shù)據(jù),就將“region”設置為index
df.pivot_table(index='region')
output
當然我們還可以更加細致一點,查看每個地區(qū)中不同咖啡種類的銷售數(shù)據(jù),因此在索引中我們引用“region”以及“product_category”兩個,代碼如下
df.pivot_table(index=['region', 'product_category'])
output
上面的案例當中,我們以地區(qū)“region”為索引看到了各項銷售指標,當中有成本、庫存、凈利潤以及銷量這個4個指標的數(shù)據(jù),那要是我們想要單獨拎出某一個指標來看的話,代碼如下所示
df.pivot_table(index=['region'], values=['sales'])
output
這也就是我們上面提到的values,在上面的案例當中我們就單獨拎出了“銷量”這一指標,又或者我們想要看一下凈利潤,代碼如下
df.pivot_table(index=['region'], values=['net_profit'])
output
另外我們也提到了aggfunc,可以設置我們對數(shù)據(jù)聚合時進行的函數(shù)操作,通常情況下,默認的都是求平均數(shù),這里我們也可以指定例如去計算總數(shù),
df.pivot_table(index=['region'], values=['sales'], aggfunc='sum')
output
或者我們也可以這么來寫
df.pivot_table(index=['region'], values=['sales'], aggfunc={ 'sales': 'sum' })
當然我們要是覺得只有一個聚合函數(shù)可能還不夠,我們可以多來添加幾個
df.pivot_table(index=['region'], values=['sales'], aggfunc=['sum', 'count'])
output
剩下最后的一個關鍵參數(shù)columns類似于之前提到的index用來設置列層次的字段,當然它并不是一個必要的參數(shù),例如
df.pivot_table(index=['region'], values=['sales'], aggfunc='sum', columns=['product_category'])
output
在“列”方向上表示每種咖啡在每個地區(qū)的銷量總和,要是我們不調用columns參數(shù),而是統(tǒng)一作為index索引的話,代碼如下
df.pivot_table(index=['region', 'product_category'], values=['sales'], aggfunc='sum')
output
同時我們看到當中存在著一些缺失值,我們可以選擇將這些缺失值替換掉
df.pivot_table(index=['region', 'product_category'], values=['sales'], aggfunc='sum')
output
我們再來做幾組練習,我們除了想要知道銷量之外還想知道各個品種的咖啡在每個地區(qū)的成本如何,我們在values當中添加“cost”的字段,代碼如下
df.pivot_table(index=['region'], values=['sales', 'cost'], aggfunc='sum', columns=['product_category'], fill_value=0)
output
同時我們還能夠計算出總量,通過調用margin這個參數(shù)
df.pivot_table(index=['region', 'product_category'], values=['sales', 'cost'], aggfunc='sum', fill_value=0, margins=True)
output
最后的最后,我們調用pivot_table函數(shù)來制作一個2010年度咖啡銷售的銷量年報,代碼如下
month_gp = pd.Grouper(key='order_date',freq='M')
cond = df["order_date"].dt.year == 2010 df[cond].pivot_table(index=['region','product_category'],
columns=[month_gp], values=['sales'],
aggfunc=['sum'])
output
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
DSGE 模型中的 Et:理性預期算子的內涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結構數(shù)據(jù)特征價值的專業(yè)核心 表結構數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結構化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結構數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結構數(shù)據(jù)(以 “行 - 列” 存儲的結構化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結構數(shù)據(jù)價值的核心操盤手 表格結構數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實踐的落地者與價值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價值,最終要在 “實踐” 中體現(xiàn) —— 脫離業(yè)務場景的分 ...
2025-09-10機器學習解決實際問題的核心關鍵:從業(yè)務到落地的全流程解析 在人工智能技術落地的浪潮中,機器學習作為核心工具,已廣泛應用于 ...
2025-09-09SPSS 編碼狀態(tài)區(qū)域中 Unicode 的功能與價值解析 在 SPSS(Statistical Product and Service Solutions,統(tǒng)計產品與服務解決方案 ...
2025-09-09