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