I will explain how to rename columns with a list of values in Pandas DataFrame but remember with a list, you should rename all columns. Even if any column you don’t want to rename, still you need to pass the actual column names with the list.
1. Quick Examples of Rename Columns With List
If you are in a hurry, below are some quick examples of how to rename columns with the list.
# Quick examples of rename columns with list
import pandas as pd
technologies = [ ["Spark",20000, "30days"],
["Pandas",25000, "40days"],
]
column_names=["Courses","Fee",'Duration']
df=pd.DataFrame(technologies, columns=column_names)
print(df.columns)
# Example 1: Rename all columns with list
cols = ['Courses','Courses_Fee','Courses_Duration']
df.columns = cols
print(df.columns)
# Example 2: Rename columns with list
cols = ['Courses','Fee','Duration']
df.set_axis(cols, axis=1,inplace=True)
print(df.columns)
Let’s create a simple DataFrame and execute these examples and validate the results.
# Create DataFrame
import pandas as pd
technologies = [ ["Spark",20000, "30days"],
["Pandas",25000, "40days"],
]
column_names=["Courses","Fee",'Duration']
df=pd.DataFrame(technologies, columns=column_names)
print("Create DataFrame:\n",df.columns)
Yields below column names.
2. Rename Columns With List
If you have all the columns you wanted to rename with a list in pandas DataFrame, you can just assign the list to DataFrame.columns
to rename all columns.
# Rename all columns with list
cols = ['Courses','Courses_Fee','Courses_Duration']
df.columns = cols
print("Renamed Columns:\n", df.columns)
Yields below output. This changes columns from Fee
to Courses_Fee
and from Duration
to Courses_Duration
.
# Output:
Renamed Columns:
Index(['Courses', 'Courses_Fee', 'Courses_Duration'], dtype='object')
3. Rename Columns with List using set_axis()
Alternatively, you can use DataFrame.set_axis()
method to rename columns with the list. use the inplace=True param to rename columns on the existing DataFrame object. In case you do not want to change the existing DataFrame do not use this param, where it returns a new DataFrame after rename.
# Rename columns with list
cols = ['Courses','Fee','Duration']
df.set_axis(cols, axis=1,inplace=True)
print(df.columns)
Yields below output. This changes column from Courses_Fee
to Fee
and from Courses_Duration
to Duration
.
# Output:
Index(['Courses', 'Fee', 'Duration'], dtype='object')
4. Complete Example of Rename Columns With List
import pandas as pd
technologies = [ ["Spark",20000, "30days"],
["Pandas",25000, "40days"],
]
column_names=["Courses","Fee",'Duration']
df=pd.DataFrame(technologies, columns=column_names)
print(df.columns)
# Rename all columns with list
cols = ['Courses','Courses_Fee','Courses_Duration']
df.columns = cols
print(df.columns)
# Rename columns with list
cols = ['Courses','Fee','Duration']
df.set_axis(cols, axis=1,inplace=True)
print(df.columns)
Frequently Asked Questions on Rename Columns With List in Pandas
To rename columns in a Pandas DataFrame using a list, you can use the rename
method and provide a dictionary where keys are the current column names and values are the new column names.
You can certainly rename only specific columns in a Pandas DataFrame using a list. Instead of renaming all columns, you can create a dictionary where the keys are the current column names you want to change, and the values are the corresponding new column names.
While directly using a list to rename columns based on a pattern might not be straightforward, you can achieve this by combining the list with other techniques like regular expressions.
You can use the set_axis()
method to rename columns with a list in Pandas. The set_axis()
method allows you to set the axis labels along a specified axis, and you can use it to rename columns by providing a list of new column names.
If the new column names list has a different length than the number of columns in the DataFrame, you will encounter a ValueError
. The length of the new column names list must match the number of columns in the DataFrame.
It is possible to create a new DataFrame with the renamed columns instead of modifying the original DataFrame. You can use either the rename
method or the assignment approach to create a new DataFrame with the renamed columns.
Conclusion
In this article, you have learned how to rename columns with a list using two different ways. When using the set_axis()
method, use inplace=True
as the param to rename columns on the existing DataFrame. In case you do not want to change the existing DataFrame do not use this param, where it returns a new DataFrame after rename.
Related Articles
- Pandas Rename Index of DataFrame
- Pandas Rename Column with Examples
- How to Rename a Pandas Series?
- Pandas Rename Column with Examples
- How to Rename Multiple Columns in Pandas
- How to Rename Specific Columns in Pandas
- How to Rename Column by Index in Pandas
- Pandas Rename Index Values of DataFrame
- Pandas Explode Multiple Columns
- Pandas Filter DataFrame Rows on Dates
- Pandas Find Row Values for Column Maximal
- Select Rows From List of Values in Pandas DataFrame