重塑或轴向旋转指的是用于重新排列表格型数据的基础运算。
层次化索引能够为DataFrame数据的重排任务提供一种就有良好一致性山东方式。主要功能有:
1、stack:将数据的列“旋转”为行
2、unstack:将数据的行“旋转”为列
源码:
# coding: utf-8
# ### 重塑层次化索引
# stack:将数据的列“旋转”为行
#
# unstack:将数据的行“旋转”为列
# In[1]:
import numpy as np
from pandas import Series,DataFrame
import pandas as pd
# In[2]:
data = DataFrame(np.arange(6).reshape((2,3)),
index=pd.Index(['Ohio','Colorado'],name='state'),
columns=pd.Index(['one','two','three'],name='number'))
print(data)
# In[3]:
# 使用stack方法将列转为行
result = data.stack()
print(result)
# In[4]:
# 对于层次化索引的Series,使用unstack将其重排为DataFrame对象
result.unstack()
# In[5]:
# 传入分层级别编号或名称进行unstack操作
result.unstack(0)
# In[6]:
# 或传入名称进行unstack操作
result.unstack('state')
# In[7]:
# 如果在分组中找不到级别值,则unstack操作会引入缺失数据
s1 = Series([0,1,2,3],index=['a','b','c','d'])
s2 = Series([4,5,6],index=['c','d','e'])
data2 = pd.concat([s1,s2],keys=['one','two'])
print(data2)
data2.unstack()