Pandas DataFrame: How to add prefix/suffix to column names

Updated: February 22, 2024 By: Guest Contributor Post a comment


When working with data in Python, one of the most common and powerful tools at your disposal is Pandas. It’s an open-source data analysis and manipulation library that allows you to work efficiently with data in various forms, including DataFrame, a 2-dimensional labeled data structure with columns of potentially different types. In this tutorial, we will explore how to add prefixes and suffixes to DataFrame column names, an essential data preprocessing step, especially in data merging or features engineering processes.


Before we dive into the examples, ensure you have Pandas installed in your environment:

pip install pandas

Next, import Pandas and create a simple DataFrame to work with:

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 34, 29, 32],
        'City': ['New York', 'London', 'Amsterdam', 'Berlin']}
df = pd.DataFrame(data)

This DataFrame contains three columns: ‘Name’, ‘Age’, and ‘City’. Let’s explore different methods to add prefixes and suffixes to these column names.

Adding Prefix to Column Names

The simplest way to add a prefix to all column names in a DataFrame is by using the add_prefix() method. This is particularly useful when you want to differentiate columns after merging DataFrames or when you need to organize your data better.

df_prefixed = df.add_prefix('Customer_')

This code snippet will prefix each column name with ‘Customer_’, resulting in column names ‘Customer_Name’, ‘Customer_Age’, and ‘Customer_City’. It’s a straightforward and efficient way to quickly adjust your DataFrame’s column names.

Adding Suffix to Column Names

Similarly, to add a suffix to all column names in a DataFrame, you can use the add_suffix() method. This is useful for marking data transformations or when working with temporal data, where you might want to add a time frame to your column names.

df_suffixed = df.add_suffix('_Info')

The above code appends ‘_Info’ to each column name, resulting in ‘Name_Info’, ‘Age_Info’, and ‘City_Info’. This method is as straightforward as adding prefixes, making your dataframes easy to manage.

Conditional Prefixes/Suffixes

There may be scenarios where you might want to selectively add prefixes or suffixes. For instance, you may only want to alter column names that contain measurement units. While there is no direct method in Pandas to conditionally add prefixes or suffixes, it can be achieved with a few lines of code by modifying the columns attribute of the DataFrame.

# Add 'metric_' prefix to columns that contain 'Age'
df.columns = [f'metric_{col}' if 'Age' in col else col for col in df.columns]

This approach provides greater flexibility, allowing you to customize column names based on specific conditions or patterns in your dataset.

Using Functions to Modify Column Names

Beyond adding simple prefixes or suffixes, you may find scenarios that require more sophisticated modifications to column names. Fortunately, Pandas allows you to apply functions across column names, giving you powerful control over your DataFrame’s structure.

df.columns = map(lambda x: 'Data_' + x if 'Name' in x else x, df.columns)

This example demonstrates how to use a lambda function to conditionally apply a prefix, showcasing the flexibility of Pandas when managing DataFrames.

Advanced Techniques

For more complex scenarios, such as when dealing with hierarchical column names (MultiIndex), you can use similar techniques, but with slight modifications:

df.columns = pd.MultiIndex.from_tuples([(x, 'Detail') for x in df.columns])

This code converts the column names to a MultiIndex, where each original column name is paired with a ‘Detail’ suffix, illustrating how to handle more sophisticated data structures within Pandas.


Adding prefixes and suffixes to DataFrame column names in Pandas is a simple yet powerful technique for organizing and managing your data. This tutorial covered several methods, from basic to advanced, to give you the tools needed to efficiently preprocess your DataFrames. Whether you’re merging datasets, marking data transformations, or simply making your DataFrames easier to interpret, these techniques offer flexibility and efficiency for your data manipulation tasks.