pandas.MultiIndex.from_frame#

classmethod MultiIndex.from_frame(df, sortorder=None, names=None)[源代码]#

从 DataFrame 创建 MultiIndex。

Parameters:
dfDataFrame

要转换为 MultiIndex 的 DataFrame。

sortorderint, optional

排序级别(必须按该级别进行词典排序)。

names类列表,可选

如果没有提供名称,则使用列名,如果列是 MultiIndex,则使用列名元组。如果是一个序列,则用给定的序列覆盖名称。

Returns:
MultiIndex

给定 DataFrame 的 MultiIndex 表示。

参见

MultiIndex.from_arrays

将数组列表转换为 MultiIndex。

MultiIndex.from_tuples

将元组列表转换为 MultiIndex。

MultiIndex.from_product

从可迭代对象的笛卡尔积创建 MultiIndex。

Examples

>>> df = pd.DataFrame([['HI', 'Temp'], ['HI', 'Precip'],
...                    ['NJ', 'Temp'], ['NJ', 'Precip']],
...                   columns=['a', 'b'])
>>> df
      a       b
0    HI    Temp
1    HI  Precip
2    NJ    Temp
3    NJ  Precip
>>> pd.MultiIndex.from_frame(df)
MultiIndex([('HI',   'Temp'),
            ('HI', 'Precip'),
            ('NJ',   'Temp'),
            ('NJ', 'Precip')],
           names=['a', 'b'])

使用显式名称,而不是列名

>>> pd.MultiIndex.from_frame(df, names=['state', 'observation'])
MultiIndex([('HI',   'Temp'),
            ('HI', 'Precip'),
            ('NJ',   'Temp'),
            ('NJ', 'Precip')],
           names=['state', 'observation'])