有许多用于重新排列表格型数据的基础运算。这些函数也称作重塑(reshape)或轴向旋转(pivot)运算。
目录
1. 重塑层次化索引
层次化索引为DataFrame数据的重排任务提供了一种具有良好一致性的方 式。主要功能有二:
- stack:将数据的列“旋转”为行。
- unstack:将数据的行“旋转”为列。
我将通过一系列的范例来讲解这些操作。接下来看一个简单的DataFrame, 其中的行列索引均为字符串数组:
data = pd.DataFrame(np.arange(6).reshape((2, 3)),
index=pd.Index(['Ohio', 'Colorado'], name='state'),
columns=pd.Index(['one', 'two', 'three'],
name='number'))
data

对该数据使用stack方法即可将列转换为行,得到一个Series:
result = data.stack()
result

对于一个层次化索引的Series,你可以用unstack将其重排为一个DataFrame:
result.unstack()

默认情况下,unstack操作的是最内层(stack也是如此)。传入分层级别的 编号或名称即可对其它级别进行unstack操作:
print(result.unstack(0))
print("------------")
print(result.unstack('state'))

如果不是所有的级别值都能在各分组中找到的话,则unstack操作可能会引入 缺失数据:
s1 = pd.Series([0, 1, 2, 3

513

被折叠的 条评论
为什么被折叠?



