Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - เปลี่ยนชื่อคอลัมน์ Pandas DataFrame ด้วย rename()

เมธอด 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

พารามิเตอร์สำคัญ

พารามิเตอร์คำอธิบาย
columnsDictionary mapping ชื่อคอลัมน์เก่า -> ใหม่
indexDictionary mapping index เก่า -> ใหม่
inplaceTrue = แก้ไข 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