pandas.DataFrame.unstack#

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

对(必然是分层的)索引标签的某个级别进行“逆透视”。

返回一个 DataFrame,该 DataFrame 拥有一个新的列标签层,其中内层是待展开的索引标签。

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

Parameters:
levelint, str, 或这些的列表,默认为 -1(最后一级)。

待展开的索引级别,可以传递级别名称。

fill_valueint, str 或 dict

如果 unstack 产生缺失值,则用此值替换 NaN。

sortbool, default True

对结果的 MultiIndex 列中的级别进行排序。

Returns:
Series 或 DataFrame

参见

DataFrame.pivot

根据列值透视表。

DataFrame.stack

透视列标签的一个级别(与 unstack 的逆操作)。

Notes

有关更多示例,请参阅 the user guide

Examples

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