在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。接下来的几篇博客将关注可以聚合、合并、重塑数据的方法。
首先,我会介绍pandas的层次化索引,它广泛用于以上操作。然后,我将深入介绍了一些特殊的数据操作。在之后的博客中,你可以看到这些工具的多种应用。
目录
1. 层次化索引
层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在 一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低维度形 式处理高维度数据。我们先来看一个简单的例子:创建一个Series,并用一 个由列表或数组组成的列表作为索引:
import numpy as np
import pandas as pd
pd.options.display.max_rows = 20
np.random.seed(12345)
import matplotlib.pyplot as plt
plt.rc('figure', figsize=(10, 6))
np.set_printoptions(precision=4, suppress=True)
data = pd.Series(np.random.randn(9),
index=[['a', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd'],
[1, 2, 3, 1, 3, 1, 2, 2, 3]])
data
看到的结果是经过美化的带有MultiIndex索引的Series的格式。索引之间 的“间隔”表示“直接使用上面的标签”:
data.index
对于一个层次化索引的对象,可以使用所谓的部分索引,使用它选取数据子集的操作更简单:
print(data['b'])
print("----------------")
print(data['b':'c'])
print("----------------")
print(data.loc[['b', 'd']])