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

ลบแถวออกจาก Pandas DataFrame ด้วย drop()

แนวคิด

เมธอด DataFrame.drop(labels, axis=0) ลบแถว (row) โดยระบุ index label คืน DataFrame ใหม่ (ไม่แก้ไขต้นฉบับ เว้นแต่ใช้ inplace=True)

ตัวอย่างโค้ด

import pandas as pd

# DataFrame พร้อม custom index
df = pd.DataFrame(
    [[10, 15], [20, 25], [30, 35], [40, 45]],
    index=['w', 'x', 'y', 'z'],
    columns=['a', 'b']
)

print("DataFrame ต้นฉบับ:\n", df)

# ลบแถว index 'w'
df = df.drop('w')
print("\nหลังลบแถว 'w':\n", df)

# ลบหลายแถวพร้อมกัน
df = df.drop(['x', 'z'])
print("\nหลังลบแถว 'x' และ 'z':\n", df)

ผลลัพธ์

DataFrame ต้นฉบับ:
    a   b
w  10  15
x  20  25
y  30  35
z  40  45

หลังลบแถว 'w':
    a   b
x  20  25
y  30  35
z  40  45

หลังลบแถว 'x' และ 'z':
    a  b
y  30  35

ตัวเลือกสำคัญ

  • axis=0 (default) ลบแถว, axis=1 ลบคอลัมน์
  • inplace=True แก้ไข DataFrame ต้นฉบับโดยตรง (ไม่คืนค่า)
  • errors='ignore' ไม่ error ถ้า label ไม่อยู่ (ค่าเริ่มต้น 'raise')
  • level สำหรับ MultiIndex

ลบด้วยตำแหน่งตัวเลข (integer position)

# ใช้ iloc + drop
df = df.drop(df.index[0])  # ลบแถวแรก
df = df.drop(df.index[[0, 2]])  # ลบแถวที่ 1 และ 3