@@ -5216,29 +5216,29 @@ def stack(self, level=-1, dropna=True):
5216
5216
5217
5217
**Multi level columns: simple case**
5218
5218
5219
- >>> multicol1 = pd.MultiIndex.from_tuples([('size ', 'weight '), ('size ', 'height ')])
5220
- >>> df_multi_level_cols1 = pd.DataFrame([[0, 1 ], [2, 3 ]],
5219
+ >>> multicol1 = pd.MultiIndex.from_tuples([('weight ', 'kg '), ('weight ', 'pounds ')])
5220
+ >>> df_multi_level_cols1 = pd.DataFrame([[1, 2 ], [2, 4 ]],
5221
5221
... index=['cat', 'dog'],
5222
5222
... columns=multicol1)
5223
5223
5224
5224
Stacking a dataframe with a multi-level column axis:
5225
5225
5226
5226
>>> df_multi_level_cols1
5227
- size
5228
- weight height
5229
- cat 0 1
5230
- dog 2 3
5227
+ weight
5228
+ kg pounds
5229
+ cat 1 2
5230
+ dog 2 4
5231
5231
>>> df_multi_level_cols1.stack()
5232
- size
5233
- cat height 1
5234
- weight 0
5235
- dog height 3
5236
- weight 2
5232
+ weight
5233
+ cat kg 1
5234
+ pounds 2
5235
+ dog kg 2
5236
+ pounds 4
5237
5237
5238
5238
**Missing values**
5239
5239
5240
- >>> multicol2 = pd.MultiIndex.from_tuples([('X ', 'a '), ('Y ', 'b ')])
5241
- >>> df_multi_level_cols2 = pd.DataFrame([[0 .0, 1 .0], [2 .0, 3 .0]],
5240
+ >>> multicol2 = pd.MultiIndex.from_tuples([('weight ', 'kg '), ('height ', 'm ')])
5241
+ >>> df_multi_level_cols2 = pd.DataFrame([[1 .0, 2 .0], [3 .0, 4 .0]],
5242
5242
... index=['cat', 'dog'],
5243
5243
... columns=multicol2)
5244
5244
@@ -5248,32 +5248,32 @@ def stack(self, level=-1, dropna=True):
5248
5248
are filled with NaNs:
5249
5249
5250
5250
>>> df_multi_level_cols2
5251
- X Y
5252
- a b
5253
- cat 0 .0 1 .0
5254
- dog 2 .0 3 .0
5251
+ weight height
5252
+ kg m
5253
+ cat 1 .0 2 .0
5254
+ dog 3 .0 4 .0
5255
5255
>>> df_multi_level_cols2.stack()
5256
- X Y
5257
- cat a 0.0 NaN
5258
- b NaN 1.0
5259
- dog a 2.0 NaN
5260
- b NaN 3.0
5256
+ height weight
5257
+ cat kg NaN 1.0
5258
+ m 2.0 NaN
5259
+ dog kg NaN 3.0
5260
+ m 4.0 NaN
5261
5261
5262
5262
**Prescribing the level(s) to be stacked**
5263
5263
5264
5264
The first parameter controls which level or levels are stacked:
5265
5265
5266
5266
>>> df_multi_level_cols2.stack(0)
5267
- a b
5268
- cat X 0.0 NaN
5269
- Y NaN 1.0
5270
- dog X 2.0 NaN
5271
- Y NaN 3.0
5267
+ kg m
5268
+ cat height NaN 2.0
5269
+ weight 1.0 NaN
5270
+ dog height NaN 4.0
5271
+ weight 3.0 NaN
5272
5272
>>> df_multi_level_cols2.stack([0, 1])
5273
- cat X a 0 .0
5274
- Y b 1.0
5275
- dog X a 2 .0
5276
- Y b 3.0
5273
+ cat height m 2 .0
5274
+ weight kg 1.0
5275
+ dog height m 4 .0
5276
+ weight kg 3.0
5277
5277
dtype: float64
5278
5278
5279
5279
**Dropping missing values**
@@ -5287,21 +5287,21 @@ def stack(self, level=-1, dropna=True):
5287
5287
keyword parameter:
5288
5288
5289
5289
>>> df_multi_level_cols3
5290
- X Y
5291
- a b
5292
- cat NaN 1.0
5293
- dog 2.0 3.0
5290
+ weight height
5291
+ kg m
5292
+ cat NaN 1.0
5293
+ dog 2.0 3.0
5294
5294
>>> df_multi_level_cols3.stack(dropna=False)
5295
- X Y
5296
- cat a NaN NaN
5297
- b NaN 1.0
5298
- dog a 2.0 NaN
5299
- b NaN 3.0
5295
+ height weight
5296
+ cat kg NaN NaN
5297
+ m 1.0 NaN
5298
+ dog kg NaN 2.0
5299
+ m 3.0 NaN
5300
5300
>>> df_multi_level_cols3.stack(dropna=True)
5301
- X Y
5302
- cat b NaN 1.0
5303
- dog a 2.0 NaN
5304
- b NaN 3.0
5301
+ height weight
5302
+ cat m 1.0 NaN
5303
+ dog kg NaN 2.0
5304
+ m 3.0 NaN
5305
5305
"""
5306
5306
from pandas .core .reshape .reshape import stack , stack_multiple
5307
5307
0 commit comments