pandas.MultiIndex.from_frame#

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

从一个 DataFrame 创建一个 MultiIndex。

参数:
dfDataFrame

要转换为 MultiIndex 的 DataFrame。

sortorderint, 可选

排序级别(必须按该级别按字典顺序排序)。

名称类似列表的,可选的

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

返回:
MultiIndex

给定 DataFrame 的 MultiIndex 表示。

参见

MultiIndex.from_arrays

将数组列表转换为 MultiIndex。

MultiIndex.from_tuples

将元组列表转换为 MultiIndex。

MultiIndex.from_product

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

例子

>>> 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'])