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

Python Pandas – การกรองแถวข้อมูลจาก DataFrame ตามผลรวมแถว

บทความนี้สาธิตวิธีกรองแถวข้อมูลใน DataFrame โดยคำนวณผลรวมของแต่ละแถว (axis=1) และเก็บเฉพาะแถวที่มีผลรวมมากกว่าเกณฑ์ที่กำหนด

สถานการณ์ตัวอย่าง

มีข้อมูลคะแนนสอบของนักเรียน 3 คน (Jacob, Ted, Jamie) 5 วิชา ต้องการกรองเฉพาะวิชาที่ผลรวมคะแนนของทั้ง 3 คนรวมกัน超過 200 คะแนน

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

import pandas as pd

# สร้าง DataFrame: แถว = วิชา, คอลัมน์ = นักเรียน
dataFrame = pd.DataFrame({
    'Jacob_Marks': [95, 90, 70, 85, 88],
    'Ted_Marks': [60, 50, 65, 85, 70],
    'Jamie_Marks': [77, 76, 60, 45, 50]
})

print("DataFrame ต้นฉบับ:")
print(dataFrame)

# กรองแถวที่ผลรวม > 200
# axis=1 หมายถึงคำนวณแนวนอน (รวมค่าทุกคอลัมน์ในแถวนั้น)
dataFrame = dataFrame[dataFrame.sum(axis=1) > 200]

print("\nDataFrame หลังกรอง (ผลรวม > 200):")
print(dataFrame)

ผลลัพธ์

DataFrame ต้นฉบับ:
   Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
2           70           60         65
3           85           45         85
4           88           50         70

DataFrame หลังกรอง:
   Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60   # ผลรวม = 232
1           90           76         50   # ผลรวม = 216
3           85           45         85   # ผลรวม = 215
4           88           50         70   # ผลรวม = 208

แถวที่ 2 (Index 2) ถูกลบออกเพราะผลรวม = 195 (< 200)

จุดสำคัญ

  • sum(axis=1) คำนวณผลรวมแนวนอน (ต่อแถว)
  • sum(axis=0) จะคำนวณผลรวมแนวตั้ง (ต่อคอลัมน์)
  • การ Boolean Indexing: df[condition] จะคืนค่าเฉพาะแถวที่เงื่อนไขเป็น True