pandas.DataFrame.unstack#

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

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

返回具有新级别的列标签的DataFrame,该列标签的最内层由透视的索引标签组成。

如果索引不是多重索引,则输出将是系列(当列不是多重索引时,类似于堆栈)。

参数
levelInt、str或列表,默认为-1(最后一级)

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

fill_valueInt、str或dict

如果取消堆叠产生缺失的值,则用此值替换NaN。

退货
系列或DataFrame

参见

DataFrame.pivot

根据列值透视表。

DataFrame.stack

透视一级列标签(从 unstack )。

注意事项

参考文献 the user guide 查看更多示例。

示例

>>> 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