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

วิธีลบคอลัมน์ (Delete Column) จาก Pandas DataFrame

ภาพรวม

มีหลายวิธีลบคอลัมน์จาก DataFrame: del, pop(), drop() แต่ละวิธีมีความแตกต่างเล็กน้อย

วิธีต่างๆ

1. ใช้ del (ในโค้ดตัวอย่าง)

del dataFrame['ColumnName']
  • ลบ inplace (เปลี่ยน DataFrame ต้นฉบับ)
  • ไม่คืนค่าที่ลบ
  • Error หากคอลัมน์ไม่มีอยู่

2. ใช้ pop()

col = dataFrame.pop('ColumnName')
  • ลบ inplace
  • คืนค่า Series ที่ลบ (เก็บไว้ใช้ได้)
  • Error หากคอลัมน์ไม่มีอยู่

3. ใช้ drop() (แนะนำ)

# ลบ 1 คอลัมน์
dataFrame = dataFrame.drop('ColumnName', axis=1)
# หรือ
dataFrame.drop(columns='ColumnName', inplace=True)

# ลบหลายคอลัมน์
dataFrame.drop(['Col1', 'Col2'], axis=1, inplace=True)
  • มีพารามิเตอร์ errors='ignore' ไม่ error ถ้าคอลัมน์ไม่มี
  • คืน DataFrame ใหม่ (ถ้า inplace=False) – 好 chain ได้
  • ชัดเจนและปลอดภัยกว่า

ตัวอย่างโค้ด (ใช้ del)

import pandas as pd

dataFrame = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
})

print("DataFrame ...\n", dataFrame)
del dataFrame['Car']
print("\nDataFrame after deleting a column =\n", dataFrame)

ผลลัพธ์

DataFrame ...
     Car  Units
0    BMW    100
1  Lexus    150
2   Audi    110
3 Mustang     80
4 Bentley    110
5 Jaguar     90

DataFrame after deleting a column =
   Units
0    100
1    150
2    110
3     80
4    110
5     90

แนะนำ: ใช้ drop()

# ปลอดภัย ไม่ error ถ้าคอลัมน์ไม่มี
df = df.drop(columns=['Car'], errors='ignore')

# Chain ได้
df = df.drop(columns=['Car']).rename(columns={'Units': 'Qty'})