Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Rename column name with an index number of the CSV file in Pandas
Pandas provides the columns.values attribute to rename column names by index position. This approach lets you modify column names directly using their integer index instead of their current names.
Creating Sample Data
Let's create a sample DataFrame to demonstrate column renaming ?
import pandas as pd
# Create sample data similar to CSV format
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
'Reg_Price': [2500, 3500, 2500, 2000, 2500],
'Units': [100, 80, 120, 70, 110]
}
dataFrame = pd.DataFrame(data)
print("Original DataFrame:")
print(dataFrame)
Original DataFrame:
Car Reg_Price Units
0 BMW 2500 100
1 Lexus 3500 80
2 Audi 2500 120
3 Jaguar 2000 70
4 Mustang 2500 110
Displaying Column Names
First, let's examine the current column names and their index positions ?
import pandas as pd
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
'Reg_Price': [2500, 3500, 2500, 2000, 2500],
'Units': [100, 80, 120, 70, 110]
}
dataFrame = pd.DataFrame(data)
print("Column names:")
print(dataFrame.columns)
print("\nColumn index positions:")
for i, col in enumerate(dataFrame.columns):
print(f"Index {i}: {col}")
Column names: Index(['Car', 'Reg_Price', 'Units'], dtype='object') Column index positions: Index 0: Car Index 1: Reg_Price Index 2: Units
Renaming Columns by Index
Now we'll rename columns using their index positions with columns.values ?
import pandas as pd
data = {
'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
'Reg_Price': [2500, 3500, 2500, 2000, 2500],
'Units': [100, 80, 120, 70, 110]
}
dataFrame = pd.DataFrame(data)
print("Before renaming:")
print(dataFrame.columns)
# Rename columns by index position
dataFrame.columns.values[0] = "Car Names"
dataFrame.columns.values[1] = "Registration Cost"
dataFrame.columns.values[2] = "Units Sold"
print("\nAfter renaming:")
print(dataFrame.columns)
print("\nUpdated DataFrame:")
print(dataFrame)
Before renaming: Index(['Car', 'Reg_Price', 'Units'], dtype='object') After renaming: Index(['Car Names', 'Registration Cost', 'Units Sold'], dtype='object') Updated DataFrame: Car Names Registration Cost Units Sold 0 BMW 2500 100 1 Lexus 3500 80 2 Audi 2500 120 3 Jaguar 2000 70 4 Mustang 2500 110
Alternative Methods
You can also rename columns using other Pandas methods for comparison ?
import pandas as pd
data = {
'Car': ['BMW', 'Lexus'],
'Reg_Price': [2500, 3500],
'Units': [100, 80]
}
# Method 1: Using rename() with dictionary
df1 = pd.DataFrame(data)
df1 = df1.rename(columns={'Car': 'Car Names', 'Reg_Price': 'Registration Cost'})
print("Method 1 - rename() with dict:")
print(df1.columns.tolist())
# Method 2: Direct assignment of all columns
df2 = pd.DataFrame(data)
df2.columns = ['Car Names', 'Registration Cost', 'Units Sold']
print("\nMethod 2 - Direct assignment:")
print(df2.columns.tolist())
# Method 3: Using columns.values with index
df3 = pd.DataFrame(data)
df3.columns.values[0] = "Car Names"
print("\nMethod 3 - columns.values by index:")
print(df3.columns.tolist())
Method 1 - rename() with dict: ['Car Names', 'Registration Cost', 'Units'] Method 2 - Direct assignment: ['Car Names', 'Registration Cost', 'Units Sold'] Method 3 - columns.values by index: ['Car Names', 'Reg_Price', 'Units']
Conclusion
Use columns.values[index] to rename specific columns by their position. This method is useful when you know the column index but not the exact current name, making it ideal for programmatic column renaming.
Advertisements
