第五课: - Stack / Unstack / Transpose函数
第 5 课
我们将简要介绍 stack 和 unstack 以及 T (Transpose)函数。
在用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即“不要堆叠”,我对两个函数是这样理解和区分的。
常见的数据的层次化结构有两种,一种是表格,一种是“花括号”,即下面这样的两种形式:
|
store1 |
store2 |
store3 |
street1 |
1 |
2 |
3 |
street2 |
4 |
5 |
6 |
表格在行列方向上均有索引(类似于DataFrame),花括号结构只有“列方向”上的索引(类似于层次化的Series),结构更加偏向于堆叠(Series-stack,方便记忆)。stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引,反之,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引
In [1]:
# Import libraries
import pandas as pd
import sys
In [2]:
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)]
In [3]:
# Our small data set
d = {'one':[1,1],'two':[2,2]}
i = ['a','b']
# Create dataframe
df = pd.DataFrame(data = d, index = i)
df
Out[3]:
In [4]:
df.index
Out[4]:
In [5]:
#把列放到索引
stack = df.stack()
stack
Out[5]:
In [6]:
#现在索引包含列名称
stack.index
Out[6]:
In [7]:
unstack = df.unstack()
unstack
Out[7]:
In [8]:
unstack.index
Out[8]:
我们还可以使用T(转置)函数来使用索引翻转列名称。
In [9]:
transpose = df.T
transpose
Out[9]:
In [10]:
transpose.index
Out[10]:
This tutorial was rewrited by 六尺巷人_CDS