咱们将简要介绍 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