http://pandas.pydata.org/pandas-docs/stable/advanced.html#multiindex-advanced-indexing
MultiIndex / Advanced Indexing
多索引的作用不是grouping分组。
只是在按索引取数据时方便:
In [95]: tuples = list(zip(*[['bar', 'bar', 'baz', 'baz', ....: 'foo', 'foo', 'qux', 'qux'], ....: ['one', 'two', 'one', 'two', ....: 'one', 'two', 'one', 'two']])) ....: In [96]: index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) In [97]: df = pd.DataFrame(np.random.randn(8, 2), index=index, columns=['A', 'B']) In [98]: df2 = df[:4] In [99]: df2 Out[99]: A B first second bar one 0.029399 -0.542108 two 0.282696 -0.087302 baz one -1.575170 1.771208 two 0.816482 1.100230
df:
A | B | ||
---|---|---|---|
first | second | ||
bar | one | -1.163615 | -1.122556 |
two | 1.468509 | 0.613618 | |
baz | one | 0.582933 | -2.293806 |
two | -0.764118 | 0.512178 | |
foo | one | 0.201312 | -0.048329 |
two | -1.653147 | -0.700491 | |
qux | one | -1.248517 | 0.709165 |
two | 1.922705 | -0.487000 |
df.loc['bar':'baz']
Out[25]:
A | B | ||
---|---|---|---|
first | second | ||
bar | one | -1.163615 | -1.122556 |
two | 1.468509 | 0.613618 | |
baz | one | 0.582933 | -2.293806 |
two | -0.764118 | 0.512178 |
df.loc[('foo', 'two')]
A -1.653147 B -0.700491 Name: (foo, two), dtype: float64