pandas.DataFrame.unstack¶
-
Pivot a level of the (necessarily hierarchical) index labels, returning a DataFrame having a new level of column labels whose inner-most level consists of the pivoted index labels. If the index is not a MultiIndex, the output will be a Series (the analogue of stack when the columns are not a MultiIndex).(当行索引只有一个时,结果会生成一个Series,详解见下面样例) The level involved will automatically get sorted.
Parameters: level : int, string, or list of these, default -1 (last level)
Level(s) of index to unstack, can pass level name
fill_value : replace NaN with this value if the unstack produces
missing values
Returns: unstacked : DataFrame or Series
See also
- Pivot a table based on column values.
- Pivot a level of the column labels (inverse operation from unstack).
DataFrame.pivot
DataFrame.stack
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 这里返回的Series本来是: One Two a b a b 1 2 3 4 这样一个dateframe,同样是将行索引转化为列索引,只不过这样数据就只有一行了,所以自动转化为Series.
DataFrame.
unstack
(
level=-1,
fill_value=None
)
[source]
¶