1. 程式人生 > 程式設計 >Python Pivot table透視表使用方法解析

Python Pivot table透視表使用方法解析

Pivot 及 Pivot_table函式用法

Pivot和Pivot_table函式都是對資料做透視表而使用的。其中的區別在於Pivot_table可以支援重複元素的聚合操作,而Pivot函式只能對不重複的元素進行聚合操作。

在一般的日常業務中,因為Pivot_table的功能更為強大,Pivot能做的不能做的Pivot_table都可做。所以只需要記住Pivot_table函式用法就好了。

Pivot函式的使用演示

#%%

import pandas as pd

df01 = pd.DataFrame(
  {
    "年份":[2019,2019,2020,2020],"平臺":["京東","淘寶","拼多多","京東","拼多多"],"銷量":[100,200,300,400,500,600]
  }
)

df01

#%%

pd.pivot(df01,index = "年份",columns = "平臺",values = "銷量")

#%%

聚合後結果

Python Pivot table透視表使用方法解析

Pivot_table函式的使用演示

註釋:index指定什麼元素作為index顯示,columns指定列,values指定統計的值。一般values都為int後者float型別的值。aggfunc為聚合函式可以指定(mean,sum,Min,Max等統計運算等函式,如果不指定預設為mean均值)

df02 = pd.DataFrame(
  {
    "年份":[2019,600,700,800]
  }
)
df02
#%%
#pivot_table用的很多.因為可以對重複的元素進行聚合操作.而pivot函式只能對不重複的行進行運算

pd.pivot_table(df02,index="年份",columns="平臺",values="銷量",aggfunc=sum #聚合函式來對銷量進行運算.可以指定最大,最小,平均值等函式.預設為mean平均值
)
#%%

聚合結果

Python Pivot table透視表使用方法解析

對比結果:這裡要強調一點的是,2020年平臺為拼多多的資料出現了2次,而且2次的值不同。在pivot函式中是無法對這種重複平臺的資料進行聚合的,但是Pivot_table則可以。

另外通過聚合函式aggfunc指定sum求和,可以把2次的值累加統計。

Pivot_table函式真實案例演示

1. 讀取表格資料

#%%
df = pd.read_excel("./datas/result_datas.xlsx",).convert_dtypes()  #讀取資料並自動轉化type
df.dtypes
#%%
df.head(3)
#%%

Python Pivot table透視表使用方法解析

2. 通過Pivot_table函式透視合併資料並對金額和數量做統計

因為涉及到敏感資訊,因此服務卡卡號等敏感資訊部分遮掩不顯示。但是通過部分結果也可以看出是按照號碼進行升序排序的

#按照自定義指定index,columns,values值
result = pd.pivot_table(df,index = ["姓名","服務卡卡號","明細","規格"],values = ["理賠金額(元)","數量"],aggfunc=sum
        )
result = result.sort_values("服務卡卡號") #按照指定values值排序
result

#%%

#輸出到檔案
result.to_excel("./datas/output_datas.xlsx")
print("Done!!!")

Python Pivot table透視表使用方法解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。