Pandas Stack

“The “pandas” is a library of software that is written in the python language for performing the analysis and manipulation of data. To execute the data in any manner, we need the data to be arranged way. So that the further process goes nicely and without obstacles. We use the pandas stack function to pile the data in a neat arrangement. The pandas stack is used for stacking the data from the sequence of the columns to the index manner. It returns multiple levels of index displaying in a new dataframe. We will implement all of how we can use the pandas stack() function. For the code implementation, we will use the software “spyder”, a free and open source written in the python language.”



“df.stack(level = -1, dropna=True)

The syntax above is of pandas stack(). The “df” in the syntax is the abbreviation of the “dataframe”. The “df. stack” works in pandas which converts the specified column to the row level. The level and the dropna are the parameters that will be explained below.


There are two parameters we will be using later on in the syntax for the example implementation of the pandas stack methods:


This parameter works as the integer names or index of the column level to change into row level. As we see in the syntax above, there is “level = -1”, which is by default set to “-1”. That default setting means that the inner column level should be converted.


This other parameter, “dropna”, is used to drop rows in the resulting dataframe with the missing values. By default, the “dropna parameter” is “true”.

We will be discussing all of the following methods in which the pandas stack can be used:

    • Pandas stack dataframe with columns (single level).
    • Pandas stack dataframe with columns (multi-level).
    • Pandas stack data frame with columns using (multi-Level = 0).
    • Pandas stack handles the missing value in the dataframe.
    • Pandas stack handles the missing value in the dataframe using (dropna = false).

Creating a Dataframe for the Single Column Implementation of the Pandas Stack Method

Firstly, open the tool “spyder”. Now, we will create a dataframe for applying the single-column pandas stack(). Import the pandas library as “pd”. The dataframe consists of the height and weight of the individuals. There is an index that has the names “tina”, “Alina” and “Selena”. Then there are columns having the weight and height states.

The output shows the dataframe as by the code:

Example # 01: Pandas Stack Dataframe With Columns (Single Level)

We will execute the pandas stack “df” single level with columns in this illustration. We have created a dataframe above, so we know how to form a dataframe. Now the “df” here consists of the names “Watson”, “tom” and “sam” and we have their heights and weights as [ 88, 4], [55, 8], and [99, 9]. The df. stack will call the dataframe, creating columns into the rows.

The output displays the results of turning the columns into rows by using the pandas stack method of single columns.

Creating a Multiple Column Dataframe for the Implementation of Pandas Stack on Multi-Levels

Here, we will be creating another dataframe that will have multiple columns. The dataframe consists of “weight” in “kg” and “pounds” because it’s a multi-level “df” creation. The index has the names of the persons “Alayna”, “dom” and “harry”. The “multi” with the “df” for the multi-level.

The displays show the dataframe creation of the multiple level dataframe by showing the weight in kg and pounds:

Example # 02: Pandas Stack Dataframe With Columns (Multi-Level)

Previously, we have created a multiple-level column dataframe as required for applying the pandas stack on the multi-level. The dataframe is the same as created above. We can implement the multi-level by using the df calling the method of “multi1_stack”. By default, the level is “-1” here, which means the innermost level is called by the stack in the dataframe that converts the “kg” and the “pounds” into rows.

The output is executed as the multi-level column successful conversion to rows by using a multi-level pandas stack.

Example # 03: Pandas Stack Data Frame With Column Using (Multi-Level = 0)

In the following example, we will implement the pandas stack multi-level on the “level = 0”. We will learn what difference it will make and when to use it. The explanation following the example is that the outermost level is “weight”, called the level “0”. In the above example, we have seen that the “kg” and “ height” both are called level “1”. If there were any other levels after these, that would be called level 2, respectively. The use of the level “0” is that it will convert the outermost level (weight) to rows.

The output shows a clear picture; now, it’s better to understand what level “0” does to the dataframe by using the pandas stack multiple column “level” parameter.

Example # 04: Pandas Stack Handling the Missing Value in the Dataframe

Now, we will be doing an example of handling the missing numbers in the “df” by using the pandas stack(). We have a multiple-level column dataframe created. The dataframe consists of the index as names “Hailey”, “john” and “Leena” with their weight in kg and height in ft. The multi-level stack has the parameter dropna as “true” by default, as discussed in the parameter section above. So that will remove the rows that contain no value or are written as “NaN”. The “NaN” means “not a number”.

The output displays the height and weight of john and Leena. But Hailey’s weight is missing because the kg row is missing. We will be correcting that in the succeeding illustration.

Example # 05: Pandas Stack Handling the Missing Value in the Dataframe Using (Dropna = False)

To drop those rows that contain the missing values, we have to set the parameter dropna as “false”. The dataframe is the same as the last example, letting us know the difference we create by passing the “ false” to the parameter.

Here in the output, we see that the Hailey weight in kg is shown, as there is no value assigned to it. It is visible as “NaN”.


Pandas “stack” is an extravagant technique for stacking the level columns into rows (index). In the areas where workers need to work on the rows instead of the columns or may want to have the data in the row manner, but they have done it in columns, this method is for them. It will save their precious time by simply using the method of pandas stack. We have done various ways in which the pandas stack work according to the situation. Every situation has its way of solving the problem to give the desired results in the dataframe. We have done the single and multiple columns with different parameters passing and for the missing values as well.

About the author

Aqsa Yasin

I am a self-motivated information technology professional with a passion for writing. I am a technical writer and love to write for all Linux flavors and Windows.