Pandas DataFrame Reindex Method

PandasPandasBeginner
Practice Now

Introduction

In this tutorial, we will learn about the Python pandas DataFrame.reindex() method. We will explore how to change the index and columns of a DataFrame using this method. The DataFrame.reindex() method allows us to reconcile the DataFrame with a new index by filling null values in the locations that have no value in the previous index.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("`Python`")) -.-> python/BasicConceptsGroup(["`Basic Concepts`"]) python(("`Python`")) -.-> python/FileHandlingGroup(["`File Handling`"]) pandas(("`Pandas`")) -.-> pandas/DataSelectionGroup(["`Data Selection`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) python(("`Python`")) -.-> python/FunctionsGroup(["`Functions`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") python/FileHandlingGroup -.-> python/with_statement("`Using with Statement`") pandas/DataSelectionGroup -.-> pandas/select_columns("`Select Columns`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("`Numerical Computing`") python/DataScienceandMachineLearningGroup -.-> python/data_analysis("`Data Analysis`") python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`") subgraph Lab Skills python/comments -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/with_statement -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} pandas/select_columns -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/lists -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/tuples -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/importing_modules -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/numerical_computing -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/data_analysis -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} python/build_in_functions -.-> lab-68713{{"`Pandas DataFrame Reindex Method`"}} end

Import the pandas library and create a DataFrame

Let's start by importing the pandas library and creating a DataFrame. We will use this DataFrame to demonstrate the DataFrame.reindex() method.

import pandas as pd

## Create a DataFrame
df = pd.DataFrame([[1, 6, 2], [3, 4, 6], [12, 1, 0]], columns=['A', 'B', 'C'], index=['index_1', 'index_2', 'index_3'])

Reindex the DataFrame using the index parameter

To reindex the DataFrame by changing the index, pass a list of new index labels to the DataFrame.reindex() method. Any index labels that are not present in the original DataFrame will be filled with NaN values.

## Reindex the DataFrame with a new index
new_index = ['index_1', 'index_2', 'index_4']
reindexed_df = df.reindex(index=new_index)

print(reindexed_df)

Output:

         A    B    C
index_1  1.0  6.0  2.0
index_2  3.0  4.0  6.0
index_4  NaN  NaN  NaN

Reindex the DataFrame using the columns parameter

Similarly, you can reindex the DataFrame by changing the columns using the DataFrame.reindex() method. Provide a list of new column labels to the columns parameter. Any columns that are not present in the original DataFrame will be filled with NaN values.

## Reindex the DataFrame with new columns
new_columns = ['A', 'C', 'D']
reindexed_df = df.reindex(columns=new_columns)

print(reindexed_df)

Output:

         A    C    D
index_1  1.0  2.0  NaN
index_2  3.0  6.0  NaN
index_3  12.0  0.0  NaN

Fill null values using the fill_value parameter

If you want to fill the null values with a specific value, you can use the fill_value parameter of the DataFrame.reindex() method. Provide the desired value to be used for filling null values.

## Reindex the DataFrame and fill null values with 2
new_index = ['index_1', 'index_2', 'index_4']
reindexed_df = df.reindex(index=new_index, fill_value=2)

print(reindexed_df)

Output:

         A  B  C
index_1  1  6  2
index_2  3  4  6
index_4  2  2  2

Summary

In this tutorial, we learned how to reindex a DataFrame using the DataFrame.reindex() method in pandas. We explored how to change the index and columns of a DataFrame, fill null values, and specify a fill value for the null values. Knowing how to properly reindex a DataFrame is useful for manipulating and aligning data in pandas.