Pandas>>pivot_table()函數列轉行
DataFrame.pivot_table(values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,dropna=True,margins_name='All')
index:必選參數,用來指定行索引。如果用數組做行索引,數據必須等長。columns:必選參數,用來指定列索引。values:可選參數,用來做集合的值。默認是顯示所有的值。aggfunc:聚合函數, pivot_table後新dataframe的值都會通過aggfunc進行運算。在pivot_table會將多重值調用aggfunc函數後放在相應的位置上。默認的aggfunc函數為求平均。fill_value:填充NA值。默認不填充margins:添加行列的總計,默認不顯示。dropna:如果整行都為NA值,則進行丟棄,默認丟棄。margins_name:在margins參數為ture時,用來修改margins的名稱import pandas as pdimport numpy as npdata_test= pd.DataFrame([[1,'張三','sex',1],[1,'張三','height',1.78],[1,'張三','weight',60],[2,'李四','sex',1],[2,'李四','height',1.75],[2,'李四','weight',59],[3,'王五','sex',0],[3,'王五','height',1.72],[3,'王五','weight',58]#[3,'王五','weight',58]],columns =['id','name','description','description_value'])data_test
如下將多行轉換成一行:
data_test.pivot_table(index=['id','name'],#必選參數,用來指定行索引。如果用數組做行索引,數據必須等長columns='description',#必選參數,用來指定列索引。values='description_value'#可選參數,用來做集合的值。默認是顯示所有的值。#aggfunc='sum')
aggfunc聚合函數,在什麼時候用呢?如下基礎數據:
import pandas as pdimport numpy as npdata_test= pd.DataFrame([[1,'張三','sex',1],[1,'張三','height',1.78],[1,'張三','weight',60],[2,'李四','sex',1],[2,'李四','height',1.75],[2,'李四','weight',59],[3,'王五','sex',0],[3,'王五','height',1.72],[3,'王五','weight',58],[3,'王五','weight',58]],columns =['id','name','description','description_value'])data_test
這裡也對其進行多行轉一行:
data_test.pivot_table(index=['id','name'],#必選參數,用來指定行索引。如果用數組做行索引,數據必須等長columns='description',#必選參數,用來指定列索引。values='description_value',#可選參數,用來做集合的值。默認是顯示所有的值。aggfunc='sum'#mean)