咱們將簡要介紹 stack 和 unstack 以及 T (Transpose)函數。html
在用pandas進行數據重排時,常常用到stack和unstack兩個函數。stack的意思是堆疊,堆積,unstack即「不要堆疊」,我對兩個函數是這樣理解和區分的。python
常見的數據的層次化結構有兩種,一種是表格,一種是「花括號」,即下面這樣的兩種形式:app
|
store1函數 |
store2spa |
store3code |
street1htm |
1blog |
2索引 |
3ip |
street2 |
4 |
5 |
6 |
表格在行列方向上均有索引(相似於DataFrame),花括號結構只有「列方向」上的索引(相似於層次化的Series),結構更加偏向於堆疊(Series-stack,方便記憶)。stack函數會將數據從」表格結構「變成」花括號結構「,即將其行索引變成列索引,反之,unstack函數將數據從」花括號結構「變成」表格結構「,即要將其中一層的列索引變成行索引
In [1]:
# Import libraries
import pandas as pd import sys
print('Python version ' + sys.version) print('Pandas version: ' + pd.__version__)
Python version 3.5.1 |Anaconda custom (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)]
# Our small data set
d = {'one':[1,1],'two':[2,2]} i = ['a','b'] # Create dataframe df = pd.DataFrame(data = d, index = i) df
df.index
#把列放到索引
stack = df.stack()
stack
#如今索引包含列名稱
stack.index
unstack = df.unstack() unstack
unstack.index
咱們還可使用T(轉置)函數來使用索引翻轉列名稱。
transpose = df.T transpose
transpose.index
This tutorial was rewrited by 六尺巷人_CDS