pandas.DataFrame.unstack#

DataFrame.unstack(level=-1, fill_value=None, sort=True)[源代码][源代码]#

旋转(必须是层次结构的)索引标签的一个层级。

返回一个 DataFrame,该 DataFrame 具有新的列标签级别,其最内层由旋转后的索引标签组成。

如果索引不是一个 MultiIndex,输出将是一个 Series(当列不是一个 MultiIndex 时,类似于 stack 的情况)。

参数:
级别int, str, 或这些的列表,默认 -1(最后一级)

要解堆叠的索引级别,可以传递级别名称。

fill_valueint, str 或 dict

如果在解堆时产生缺失值,请用此值替换 NaN。

排序布尔值, 默认为 True

对生成的 MultiIndex 列中的级别进行排序。

返回:
Series 或 DataFrame

如果 index 是一个 MultiIndex:带有旋转索引标签作为新的最内层列标签的 DataFrame,否则为 Series。

参见

DataFrame.pivot

基于列值对表格进行透视。

DataFrame.stack

旋转列标签的一个级别(unstack 的逆操作)。

备注

更多示例请参考 用户指南

例子

>>> index = pd.MultiIndex.from_tuples(
...     [("one", "a"), ("one", "b"), ("two", "a"), ("two", "b")]
... )
>>> s = pd.Series(np.arange(1.0, 5.0), index=index)
>>> s
one  a   1.0
     b   2.0
two  a   3.0
     b   4.0
dtype: float64
>>> s.unstack(level=-1)
     a   b
one  1.0  2.0
two  3.0  4.0
>>> s.unstack(level=0)
   one  two
a  1.0   3.0
b  2.0   4.0
>>> df = s.unstack(level=0)
>>> df.unstack()
one  a  1.0
     b  2.0
two  a  3.0
     b  4.0
dtype: float64