เมธอด rename() ใช้เปลี่ยนชื่อคอลัมน์ (หรือ index) ของ DataFrame โดยระบุ mapping ในพารามิเตอร์ columns={} เป็น dictionary {ชื่อเก่า: ชื่อใหม่}
ขั้นตอนการทำงาน
1. โหลดข้อมูล
import pandas as pd
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\SalesRecords.csv")
2. เปลี่ยนชื่อคอลัมน์หลายคอลัมน์พร้อมกัน
dataFrame = dataFrame.rename(columns={
'Car': 'Car Name',
'Date_of_Purchase': 'Sold On',
'Reg_Price': 'Booking Price'
}, inplace=False)
โค้ดตัวอย่างสมบูรณ์
import pandas as pd
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\SalesRecords.csv")
print("DataFrame:\n", dataFrame)
print("\nRows, Cols:", dataFrame.shape)
# เปลี่ยนชื่อคอลัมน์
dataFrame = dataFrame.rename(columns={
'Car': 'Car Name',
'Date_of_Purchase': 'Sold On',
'Reg_Price': 'Booking Price'
}, inplace=False)
print("\nDataFrame with updated Column Name:\n", dataFrame)
ผลลัพธ์
DataFrame:
Car Date_of_Purchase Reg_Price
0 BMW 10/10/2020 1000
1 Lexus 10/12/2020 750
2 Audi 10/17/2020 750
3 Jaguar 10/16/2020 1500
4 Mustang 10/19/2020 1100
5 Lamborghini 10/22/2020 1000
Rows, Cols: (6, 3)
DataFrame with updated Column Name:
Car Name Sold On Booking Price
0 BMW 10/10/2020 1000
1 Lexus 10/12/2020 750
2 Audi 10/17/2020 750
3 Jaguar 10/16/2020 1500
4 Mustang 10/19/2020 1100
5 Lamborghini 10/22/2020 1000
พารามิเตอร์สำคัญ
| พารามิเตอร์ | คำอธิบาย |
|---|---|
columns | Dictionary mapping ชื่อคอลัมน์เก่า -> ใหม่ |
index | Dictionary mapping index เก่า -> ใหม่ |
inplace | True = แก้ไข DataFrame เดิม, False = คืน DataFrame ใหม่ (default) |
errors | 'raise' (default) error ถ้าชื่อไม่มี, 'ignore' = ข้ามไป |
วิธีอื่นๆ ในการเปลี่ยนชื่อคอลัมน์
# 1. กำหนด columns ใหม่โดยตรง (ต้องครบทุกคอลัมน์)
df.columns = ['Car_Name', 'Sold_On', 'Booking_Price']
# 2. ใช้ str methods (สำหรับ rename ทุกคอลัมน์แบบ pattern)
df.columns = df.columns.str.lower().str.replace(' ', '_')
# 3. ใช้ add_prefix / add_suffix
df = df.add_prefix('col_')
df = df.add_suffix('_new')
# 4. rename กับ function
df.rename(columns=str.upper) # ทุกคอลัมน์เป็นตัวใหญ่
df.rename(columns=lambda x: x.replace('_', ' '))
Best Practice
- ใช้
inplace=False(default) และ assign กลับ:df = df.rename(...)→ ชัดเจนกว่าและหลีกเลี่ยง SettingWithCopyWarning - ใช้
errors='ignore'ถ้าอาจมีคอลัมน์ที่ไม่มีอยู่จริง - ตั้งชื่อคอลัมน์เป็น
snake_caseมาตรฐาน:car_name,reg_price