Skip to content

Commit 15902ed

Browse files
Split the examples into several sections.
Easier to follow.
1 parent 7f422d6 commit 15902ed

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

pandas/core/frame.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5195,17 +5195,6 @@ def stack(self, level=-1, dropna=True):
51955195
51965196
Examples
51975197
--------
5198-
>>> multicol1 = pd.MultiIndex.from_tuples([('X', 'a'), ('X', 'b')])
5199-
>>> df_multi_level_cols1 = pd.DataFrame([[0, 1], [2, 3]],
5200-
... index=['one', 'two'],
5201-
... columns=multicol1)
5202-
>>> multicol2 = pd.MultiIndex.from_tuples([('X', 'a'), ('Y', 'b')])
5203-
>>> df_multi_level_cols2 = pd.DataFrame([[0.0, 1.0], [2.0, 3.0]],
5204-
... index=['one', 'two'],
5205-
... columns=multicol2)
5206-
>>> df_multi_level_cols3 = pd.DataFrame([[None, 1.0], [2.0, 3.0]],
5207-
... index=['one', 'two'],
5208-
... columns=multicol2)
52095198
52105199
**Single level columns**
52115200
@@ -5226,6 +5215,13 @@ def stack(self, level=-1, dropna=True):
52265215
b 3
52275216
dtype: int64
52285217
5218+
**Multi level columns: simple case**
5219+
5220+
>>> multicol1 = pd.MultiIndex.from_tuples([('X', 'a'), ('X', 'b')])
5221+
>>> df_multi_level_cols1 = pd.DataFrame([[0, 1], [2, 3]],
5222+
... index=['one', 'two'],
5223+
... columns=multicol1)
5224+
52295225
Stacking a dataframe with a multi-level column axis:
52305226
52315227
>>> df_multi_level_cols1
@@ -5240,6 +5236,13 @@ def stack(self, level=-1, dropna=True):
52405236
two a 2
52415237
b 3
52425238
5239+
**Missing values**
5240+
5241+
>>> multicol2 = pd.MultiIndex.from_tuples([('X', 'a'), ('Y', 'b')])
5242+
>>> df_multi_level_cols2 = pd.DataFrame([[0.0, 1.0], [2.0, 3.0]],
5243+
... index=['one', 'two'],
5244+
... columns=multicol2)
5245+
52435246
It is common to have missing values when stacking a dataframe
52445247
with multi-level columns, as the stacked dataframe typically
52455248
has more values than the original dataframe. Missing values
@@ -5257,6 +5260,8 @@ def stack(self, level=-1, dropna=True):
52575260
two a 2.0 NaN
52585261
b NaN 3.0
52595262
5263+
**Prescribing the level(s) to be stacked**
5264+
52605265
The first parameter controls which level or levels are stacked:
52615266
52625267
>>> df_multi_level_cols2.stack(0)
@@ -5272,6 +5277,13 @@ def stack(self, level=-1, dropna=True):
52725277
Y b 3.0
52735278
dtype: float64
52745279
5280+
**Dropping missing values**
5281+
5282+
>>> df_multi_level_cols3 = pd.DataFrame([[None, 1.0], [2.0, 3.0]],
5283+
... index=['one', 'two'],
5284+
... columns=multicol2)
5285+
5286+
52755287
Note that rows where all values are missing are dropped by
52765288
default but this behaviour can be controlled via the dropna
52775289
keyword parameter:

0 commit comments

Comments
 (0)