Pandas: วิธีลบคอลัมน์หากมีอยู่


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อลบหนึ่งคอลัมน์ขึ้นไปใน Pandas DataFrame หากมีอยู่:

 df = df. drop ([' column1 ', ' column2 '], axis= 1 , errors=' ignore ')

หมายเหตุ: หากคุณไม่ได้ใช้อาร์กิวเมนต์ error=’ignore’ คุณจะได้รับข้อผิดพลาดหากคุณพยายามลบคอลัมน์ที่ไม่มีอยู่

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ลบคอลัมน์หากมีอยู่ใน Pandas

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9],
                   ' minutes ': [10.1, 12.0, 9.0, 8.0, 8.4, 7.5],
                   ' all_star ': [True, False, False, True, True, True]})

#view DataFrame
print (df)

  team points assists minutes all_star
0 A 18 5 10.1 True
1 B 22 7 12.0 False
2 C 19 7 9.0 False
3 D 14 9 8.0 True
4 E 14 12 8.4 True
5 F 11 9 7.5 True

ตอนนี้ สมมติว่าเราพยายามลบคอลัมน์ชื่อ minutes_played และ point :

 #drop minutes_played and points columns
df = df. drop ([' minutes_played ', ' points '], axis= 1 )

KeyError: "['minutes_played', 'points'] not found in axis"

เราได้รับข้อผิดพลาดเนื่องจากคอลัมน์ minutes_played ไม่มีอยู่เป็นชื่อคอลัมน์ใน DataFrame

แต่เราจำเป็นต้องใช้ฟังก์ชัน drop() กับอาร์กิวเมนต์ error=’ignore’ แทน :

 #drop minutes_played and points columns
df = df. drop ([' minutes_played ', ' points '], axis= 1 , errors=' ignore ')

#view updated DataFrame
print (df)

  team assists minutes all_star
0 A 5 10.1 True
1 B 7 12.0 False
2 C 7 9.0 False
3 D 9 8.0 True
4 E 12 8.4 True
5 F 9 7.5 True

โปรดทราบว่าคอลัมน์ จุดได้ ถูกลบออกจาก DataFrame

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใดๆ แม้ว่าเราจะพยายามลบคอลัมน์ชื่อ minutes_played ซึ่งไม่มีอยู่ก็ตาม

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:

Pandas: วิธีลบคอลัมน์ที่ไม่มีชื่อ
Pandas: วิธีลบคอลัมน์ทั้งหมดยกเว้นคอลัมน์เฉพาะ
Pandas: วิธีลบแถวทั้งหมดยกเว้นบางแถว

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *