You can use the following basic syntax to rename only the last column in a pandas DataFrame:
df.columns = [*df.columns[:-1], 'new_name']
This particular example renames the last column new_name in a pandas DataFrame called df.
The following example shows how to use this syntax in practice.
Example: Rename Only the Last Column in Pandas
Suppose we have the following pandas DataFrame that contains information about various basketball players:
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, 28], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7 H 28 4 12
Currently the last column in the DataFrame is named rebounds.
We can use the following syntax to rename this column to rebs:
#rename last column to 'rebs'
df.columns = [*df.columns[:-1], 'rebs']
#view updated DataFrame
print(df)
team points assists rebs
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7 H 28 4 12
Notice that the last column has been renamed to rebs and all other columns have remained unchanged.
We can also use the following syntax to view a list of all of the column names in the DataFrame:
#view column names
print(df.columns)
Index(['team', 'points', 'assists', 'rebs'], dtype='object')
We can see that the last column has indeed been renamed to rebs.
The benefit of using this syntax is that we don’t need to know ahead of time how many columns are in the DataFrame.
Additional Resources
The following tutorials explain how to perform other common operations in pandas:
How to List All Column Names in Pandas
How to Sort Columns by Name in Pandas
How to Drop Duplicate Columns in Pandas