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

Python Pandas – กรองคอลัมน์จาก DataFrame ตามผลรวม (Filter Columns by Sum)

ภาพรวม

ใช้ loc[] กรองคอลัมน์ที่ผลรวม (sum) ผ่านเกณฑ์ที่กำหนด เช่น คะแนนรวม > 400

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


import pandas as pd

dataFrame = pd.DataFrame({
    'Jacob_Marks': [95, 90, 75, 85, 88],
    'Ted_Marks': [60, 50, 65, 85, 70],
    'Jamie_Marks': [77, 76, 65, 45, 50]
})

print("Dataframe...\n", dataFrame)

# กรองคอลัมน์ที่ sum > 400
dataFrame = dataFrame.loc[:, dataFrame.sum(axis=0) > 400]

print("Updated Dataframe...\n", dataFrame)

ผลลัพธ์

Dataframe...
   Jacob_Marks  Jamie_Marks  Ted_Marks
0           95           77         60
1           90           76         50
2           75           65         65
3           85           45         85
4           88           50         70

Updated Dataframe...
   Jacob_Marks
0           95
1           90
2           75
3           85
4           88

คำอธิบาย

  • Jacob_Marks sum = 95+90+75+85+88 = 433 > 400 -> เก็บ
  • Ted_Marks sum = 60+50+65+85+70 = 330 <= 400 -> ลบ
  • Jamie_Marks sum = 77+76+65+45+50 = 313 <= 400 -> ลบ
  • axis=0 = sum ตามแนวตั้ง (column sum)
  • loc[:, condition] = ทุกแถว, คอลัมน์ที่ condition=True

ขยาย: กรองหลายเงื่อนไข


# Sum > 400 AND mean > 80
mask = (df.sum(axis=0) > 400) & (df.mean(axis=0) > 80)
df_filtered = df.loc[:, mask]

# ใช้ query (สำหรับ rows)
df.query('Jacob_Marks > 80')