長表寬表的轉換

原文傳送門:https://www.cnblogs.com/zlslch/p/8644585.html

 

處理長表和寬表類的轉換的時候之前總是自己寫底層

但是底層寫得太爛了,轉換的速度總是不滿意,pandas 的不斷concat過程耗費的時間太久

然後就靈機一動

作爲最熱門的語言,python會不會有這種長表寬表的轉換呢?

結果有的。。。。

import pandas as pd
import numpy as np


mydata=pd.DataFrame({
"Name":["蘋果","谷歌","臉書","亞馬遜","騰訊"],
"Conpany":["Apple","Google","Facebook","Amozon","Tencent"],
"Sale2013":[5000,3500,2300,2100,3100],
"Sale2014":[5050,3800,2900,2500,3300],
"Sale2015":[5050,3800,2900,2500,3300],
"Sale2016":[5050,3800,2900,2500,3300]
       })

 

這個是一張寬錶轉換成長表只需要dataframe的一個屬性

mydata1=mydata.melt(
id_vars=["Name","Conpany"],   #要保留的主字段
var_name="Year",                     #拉長的分類變量
value_name="Sale"                  #拉長的度量值名稱
        )

如果長錶轉成寬表同樣也只要一個屬性就能搞定了!!!

mydata1.pivot_table(
index=["Name","Conpany"],    #行索引(可以使多個類別變量)
columns=["Year"],                   #列索引(可以使多個類別變量)
values=["Sale"]                       #值(一般是度量指標)
     )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章