Skip to content

Commit 2e0873b

Browse files
Start using more meaningful index & column names
1 parent 2379886 commit 2e0873b

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

pandas/core/frame.py

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5198,48 +5198,48 @@ def stack(self, level=-1, dropna=True):
51985198
**Single level columns**
51995199
52005200
>>> df_single_level_cols = pd.DataFrame([[0, 1], [2, 3]],
5201-
... index=['one', 'two'],
5202-
... columns=['a', 'b'])
5201+
... index=['cat', 'dog'],
5202+
... columns=['weight', 'height'])
52035203
52045204
Stacking a dataframe with a single level column axis returns a Series:
52055205
52065206
>>> df_single_level_cols
5207-
a b
5208-
one 0 1
5209-
two 2 3
5207+
weight height
5208+
cat 0 1
5209+
dog 2 3
52105210
>>> df_single_level_cols.stack()
5211-
one a 0
5212-
b 1
5213-
two a 2
5214-
b 3
5211+
cat weight 0
5212+
height 1
5213+
dog weight 2
5214+
height 3
52155215
dtype: int64
52165216
52175217
**Multi level columns: simple case**
52185218
5219-
>>> multicol1 = pd.MultiIndex.from_tuples([('X', 'a'), ('X', 'b')])
5219+
>>> multicol1 = pd.MultiIndex.from_tuples([('size', 'weight'), ('size', 'height')])
52205220
>>> df_multi_level_cols1 = pd.DataFrame([[0, 1], [2, 3]],
5221-
... index=['one', 'two'],
5221+
... index=['cat', 'dog'],
52225222
... columns=multicol1)
52235223
52245224
Stacking a dataframe with a multi-level column axis:
52255225
52265226
>>> df_multi_level_cols1
5227-
X
5228-
a b
5229-
one 0 1
5230-
two 2 3
5227+
size
5228+
weight height
5229+
cat 0 1
5230+
dog 2 3
52315231
>>> df_multi_level_cols1.stack()
5232-
X
5233-
one a 0
5234-
b 1
5235-
two a 2
5236-
b 3
5232+
size
5233+
cat height 1
5234+
weight 0
5235+
dog height 3
5236+
weight 2
52375237
52385238
**Missing values**
52395239
52405240
>>> multicol2 = pd.MultiIndex.from_tuples([('X', 'a'), ('Y', 'b')])
52415241
>>> df_multi_level_cols2 = pd.DataFrame([[0.0, 1.0], [2.0, 3.0]],
5242-
... index=['one', 'two'],
5242+
... index=['cat', 'dog'],
52435243
... columns=multicol2)
52445244
52455245
It is common to have missing values when stacking a dataframe
@@ -5250,13 +5250,13 @@ def stack(self, level=-1, dropna=True):
52505250
>>> df_multi_level_cols2
52515251
X Y
52525252
a b
5253-
one 0.0 1.0
5254-
two 2.0 3.0
5253+
cat 0.0 1.0
5254+
dog 2.0 3.0
52555255
>>> df_multi_level_cols2.stack()
52565256
X Y
5257-
one a 0.0 NaN
5257+
cat a 0.0 NaN
52585258
b NaN 1.0
5259-
two a 2.0 NaN
5259+
dog a 2.0 NaN
52605260
b NaN 3.0
52615261
52625262
**Prescribing the level(s) to be stacked**
@@ -5265,21 +5265,21 @@ def stack(self, level=-1, dropna=True):
52655265
52665266
>>> df_multi_level_cols2.stack(0)
52675267
a b
5268-
one X 0.0 NaN
5268+
cat X 0.0 NaN
52695269
Y NaN 1.0
5270-
two X 2.0 NaN
5270+
dog X 2.0 NaN
52715271
Y NaN 3.0
52725272
>>> df_multi_level_cols2.stack([0, 1])
5273-
one X a 0.0
5273+
cat X a 0.0
52745274
Y b 1.0
5275-
two X a 2.0
5275+
dog X a 2.0
52765276
Y b 3.0
52775277
dtype: float64
52785278
52795279
**Dropping missing values**
52805280
52815281
>>> df_multi_level_cols3 = pd.DataFrame([[None, 1.0], [2.0, 3.0]],
5282-
... index=['one', 'two'],
5282+
... index=['cat', 'dog'],
52835283
... columns=multicol2)
52845284
52855285
Note that rows where all values are missing are dropped by
@@ -5289,18 +5289,18 @@ def stack(self, level=-1, dropna=True):
52895289
>>> df_multi_level_cols3
52905290
X Y
52915291
a b
5292-
one NaN 1.0
5293-
two 2.0 3.0
5292+
cat NaN 1.0
5293+
dog 2.0 3.0
52945294
>>> df_multi_level_cols3.stack(dropna=False)
52955295
X Y
5296-
one a NaN NaN
5296+
cat a NaN NaN
52975297
b NaN 1.0
5298-
two a 2.0 NaN
5298+
dog a 2.0 NaN
52995299
b NaN 3.0
53005300
>>> df_multi_level_cols3.stack(dropna=True)
53015301
X Y
5302-
one b NaN 1.0
5303-
two a 2.0 NaN
5302+
cat b NaN 1.0
5303+
dog a 2.0 NaN
53045304
b NaN 3.0
53055305
"""
53065306
from pandas.core.reshape.reshape import stack, stack_multiple

0 commit comments

Comments
 (0)