Pandas: วิธีเลือกคอลัมน์ตามเงื่อนไข
คุณสามารถใช้วิธีการต่อไปนี้เพื่อเลือกคอลัมน์ใน Pandas DataFrame ตามเงื่อนไข:
วิธีที่ 1: เลือกคอลัมน์ที่มีอย่างน้อยหนึ่งแถวที่ตรงตามเงื่อนไข
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
วิธีที่ 2: เลือกคอลัมน์ที่ทุกแถวตรงตามเงื่อนไข
#select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]
วิธีที่ 3: เลือกคอลัมน์ที่มีอย่างน้อยหนึ่งแถวที่ตรงตามเงื่อนไขหลายข้อ
#select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับ DataFrame แพนด้าต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' apples ': [7, 3, 3, 4, 3], ' oranges ': [2, 0, 2, 0, 1], ' bananas ': [5, 0, 4, 0, 12]}, index=[' Farm1 ',' Farm2 ',' Farm3 ',' Farm4 ',' Farm5 ']) #view DataFrame print (df) apples oranges bananas Farm1 7 2 5 Farm2 3 0 0 Farm3 3 2 4 Farm4 4 0 0 Farm5 3 1 12
ตัวอย่างที่ 1: เลือกคอลัมน์ที่มีอย่างน้อยหนึ่งแถวตรงตามเงื่อนไข
เราสามารถใช้โค้ดต่อไปนี้เพื่อเลือกคอลัมน์จาก DataFrame โดยที่อย่างน้อยหนึ่งแถวในคอลัมน์มีค่ามากกว่า 2:
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
apples bananas
Farm1 7 5
Farm2 3 0
Farm3 3 4
Farm4 0 0
Farm5 3 12
โปรดทราบว่าคอลัมน์ แอปเปิ้ล และ กล้วย จะถูกส่งกลับทั้งคู่ เนื่องจากคอลัมน์เหล่านี้มีอย่างน้อยหนึ่งแถวที่มีค่ามากกว่า 2
ตัวอย่างที่ 2: เลือกคอลัมน์ที่ทุกแถวตรงตามเงื่อนไข
เราสามารถใช้โค้ดต่อไปนี้เพื่อเลือกคอลัมน์จาก DataFrame โดยที่แต่ละแถวในคอลัมน์มีค่ามากกว่า 2:
#select columns where every row has a value greater than 2
df. loc [:, (df > 2 ). all ()]
apples
Farm1 7
Farm2 3
Farm3 3
Farm4 4
Farm5 3
โปรดทราบว่าระบบจะส่งกลับเฉพาะคอลัมน์ Apples เนื่องจากเป็นคอลัมน์เดียวที่แต่ละแถวในคอลัมน์มีค่ามากกว่า 2
ตัวอย่างที่ 3: เลือกคอลัมน์ที่มีอย่างน้อยหนึ่งแถวตรงตามเงื่อนไขหลายประการ
เราสามารถใช้โค้ดต่อไปนี้เพื่อเลือกคอลัมน์จาก DataFrame โดยที่อย่างน้อยหนึ่งแถวในคอลัมน์มีค่าระหว่าง 10 ถึง 15:
#select columns where every row has a value greater than 2
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
bananas
Farm1 5
Farm2 0
Farm3 4
Farm4 0
Farm5 12
โปรดทราบว่าจะส่งคืนค่าเฉพาะคอลัมน์ Bananas เนื่องจากเป็นคอลัมน์เดียวที่มีอย่างน้อยหนึ่งแถวในคอลัมน์ที่มีค่าระหว่าง 10 ถึง 15
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีเลือกคอลัมน์ตามชื่อใน Pandas
วิธีเลือกคอลัมน์ตามดัชนีใน Pandas
วิธีเลือกคอลัมน์ที่มีสตริงเฉพาะใน Pandas