ภาพรวม
มีหลายวิธีลบคอลัมน์จาก 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'})