Add Suffix to Each Column Name in Pandas DataFrame

To add a suffix to each column name in Pandas DataFrame:

df = df.add_suffix('your suffix')

Steps to Add Suffix to Each Column Name in Pandas DataFrame

Step 1: Create a DataFrame

To start with a simple example, let’s say that you have the following dataset that contains 3 columns:

ProductPriceDiscount
ABC750Yes
DDD430No
XYZ980No
AAA250Yes
CCC620No

You can then create a DataFrame as follows:

import pandas as pd

data = {'Product': ['ABC', 'DDD', 'XYZ', 'AAA', 'CCC'],
        'Price': [750, 430, 980, 250, 620],
        'Discount': ['Yes', 'No', 'No', 'Yes', 'No']
        }

df = pd.DataFrame(data)

print(df)

Once you run the code in Python, you’ll get the following DataFrame:

  Product  Price  Discount
0     ABC    750       Yes
1     DDD    430        No
2     XYZ    980        No
3     AAA    250       Yes
4     CCC    620        No

Step 2: Add Suffix to Each Column Name in Pandas DataFrame

Let’s say that you want to add the suffix of ‘_Sold‘ at the end of each column name in the above DataFrame.

In that case, you’ll need to apply this syntax in order to add the suffix:

df = df.add_suffix('_Sold')

So for our example, the complete Python code would look as follows:

import pandas as pd

data = {'Product': ['ABC', 'DDD', 'XYZ', 'AAA', 'CCC'],
        'Price': [750, 430, 980, 250, 620],
        'Discount': ['Yes', 'No', 'No', 'Yes', 'No']
        }

df = pd.DataFrame(data)

df = df.add_suffix('_Sold')

print(df)

As you can see, the suffix of ‘_Sold‘ is now added to each column in the DataFrame:

  Product_Sold    Price_Sold   Discount_Sold
0         ABC           750             Yes
1         DDD           430              No
2         XYZ           980              No
3         AAA           250             Yes
4         CCC           620              No

But what if you want to add a suffix to a single column (or a subset of columns) in the DataFrame?

In such a case, you may consider to rename the column/s instead.

For instance, let’s say that you want to add the suffix of ‘_Sold’ to the ‘Price’ column only. You can therefore apply the following code in Python to rename the Price column:

import pandas as pd

data = {'Product': ['ABC', 'DDD', 'XYZ', 'AAA', 'CCC'],
        'Price': [750, 430, 980, 250, 620],
        'Discount': ['Yes', 'No', 'No', 'Yes', 'No']
        }

df = pd.DataFrame(data)

df = df.rename(columns={'Price': 'Price_Sold'})

print(df)

You’ll now see that the suffix of ‘_Sold‘ is applied to the Price column only:

  Product   Price_Sold   Discount
0     ABC          750        Yes
1     DDD          430         No
2     XYZ          980         No
3     AAA          250        Yes
4     CCC          620         No

You can check the Pandas Documentation to learn more about add_suffix.

You may also check the following guide to add a prefix in Pandas DataFrame.