长表宽表的转换

原文传送门: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"]                       #值(一般是度量指标)
     )

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