Similar to the pivot function are the .stack() and .unstack() methods. The process of stacking pivots a level of column labels to the row index. Unstacking performs the opposite, that is, pivoting a level of the row index into the column index.
One of the differences between stacking/unstacking and performing a pivot is that unlike pivots, the stack and unstack functions are able to pivot specific levels of a hierarchical index. Also, where a pivot retains the same number of levels on an index, a stack and unstack always increases the levels on the index of one of the axes (columns for unstacking and rows for stacking) and decrease the levels on the other axis.