溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-09-13 15:44:07 來源:腳本之家 閱讀:1334 作者:秋天中的一片葉 欄目:開發(fā)技術(shù)

Pivot 及 Pivot_table函數(shù)用法

Pivot和Pivot_table函數(shù)都是對數(shù)據(jù)做透視表而使用的。其中的區(qū)別在于Pivot_table可以支持重復(fù)元素的聚合操作,而Pivot函數(shù)只能對不重復(fù)的元素進(jìn)行聚合操作。

在一般的日常業(yè)務(wù)中,因?yàn)镻ivot_table的功能更為強(qiáng)大,Pivot能做的不能做的Pivot_table都可做。所以只需要記住Pivot_table函數(shù)用法就好了。

Pivot函數(shù)的使用演示

#%%

import pandas as pd

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

df01

#%%

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

#%%

聚合后結(jié)果

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

Pivot_table函數(shù)的使用演示

注釋:index指定什么元素作為index顯示,columns指定列,values指定統(tǒng)計(jì)的值。一般values都為int后者float類型的值。aggfunc為聚合函數(shù)可以指定(mean,sum,Min,Max等統(tǒng)計(jì)運(yùn)算等函數(shù),如果不指定默認(rèn)為mean均值)

df02 = pd.DataFrame(
  {
    "年份":[2019,2019,2019,2019,2020,2020,2020,2020],
    "平臺":["京東","淘寶","淘寶","拼多多","京東","淘寶","拼多多","拼多多"],
    "銷量":[100,200,300,400,500,600,700,800]
  }
)
df02
#%%
#pivot_table用的很多.因?yàn)榭梢詫χ貜?fù)的元素進(jìn)行聚合操作.而pivot函數(shù)只能對不重復(fù)的行進(jìn)行運(yùn)算

pd.pivot_table(df02,
        index="年份",
        columns="平臺",
        values="銷量",
        aggfunc=sum #聚合函數(shù)來對銷量進(jìn)行運(yùn)算.可以指定最大,最小,平均值等函數(shù).默認(rèn)為mean平均值
)
#%%

聚合結(jié)果

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

對比結(jié)果:這里要強(qiáng)調(diào)一點(diǎn)的是,2020年平臺為拼多多的數(shù)據(jù)出現(xiàn)了2次,而且2次的值不同。在pivot函數(shù)中是無法對這種重復(fù)平臺的數(shù)據(jù)進(jìn)行聚合的,但是Pivot_table則可以。

另外通過聚合函數(shù)aggfunc指定sum求和,可以把2次的值累加統(tǒng)計(jì)。

Pivot_table函數(shù)真實(shí)案例演示

1. 讀取表格數(shù)據(jù)

#%%
df = pd.read_excel("./datas/result_datas.xlsx",
         ).convert_dtypes()  #讀取數(shù)據(jù)并自動(dòng)轉(zhuǎn)化type
df.dtypes
#%%
df.head(3)
#%%

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

2. 通過Pivot_table函數(shù)透視合并數(shù)據(jù)并對金額和數(shù)量做統(tǒng)計(jì)

因?yàn)樯婕暗矫舾行畔?,因此服?wù)卡卡號等敏感信息部分遮掩不顯示。但是通過部分結(jié)果也可以看出是按照號碼進(jìn)行升序排序的

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

#%%

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI