pandas.DataFrame.unstack #

数据框。unstack ( level = -1 , fill_value = None , sort = True ) [来源] #

透视索引标签的一个级别(必须是分层的)。

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

如果索引不是 MultiIndex,则输出将是一个 Series(当列不是 MultiIndex 时类似于堆栈)。

参数
level int、str 或它们的列表,默认 -1(最后一级)

要取消堆栈的索引级别,可以传递级别名称。

fill_value int、str 或 dict

如果 unstack 产生缺失值,请将 NaN 替换为该值。

排序bool,默认 True

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

返回
系列或数据框

也可以看看

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