สมมติว่าคุณมี DataFrame และต้องการหาคอลัมน์ที่มีจำนวนค่าขาดหายไป (missing values) น้อยที่สุด
วิธีแก้ปัญหา
- สร้าง DataFrame ที่มีคอลัมน์ Id, Salary และ Age
- ใช้
df.apply()ร่วมกับ lambda function เพื่อคำนวณผลรวมของค่า null ในแต่ละคอลัมน์ (axis=0) - ใช้
df.idxmin()เพื่อหาชื่อคอลัมน์ที่มีค่าขาดหายไปน้อยที่สุด
ตัวอย่างโค้ด
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Id': [1, 2, 3, np.nan, 5, 6, 7, 8, 9, 10],
'Salary': [20000, np.nan, 50000, 40000, 80000, np.nan, 350000, 55000, 60000, 70000],
'Age': [22, 23, np.nan, 25, np.nan, 25, 26, 27, np.nan, 24]
})
print("DataFrame คือ:\n", df)
# คำนวณจำนวนค่า null ต่อคอลัมน์
missing_counts = df.apply(lambda x: x.isnull().sum(), axis=0)
print("จำนวนค่าขาดหายไปต่อคอลัมน์:\n", missing_counts)
# หาคอลัมน์ที่มีค่าขาดหายไปน้อยที่สุด
lowest_missing_col = missing_counts.idxmin()
print("คอลัมน์ที่มีค่าขาดหายไปน้อยที่สุด:", lowest_missing_col)
ผลลัพธ์
DataFrame คือ:
Id Salary Age
0 1.0 20000.0 22.0
1 2.0 NaN 23.0
2 3.0 50000.0 NaN
3 NaN 40000.0 25.0
4 5.0 80000.0 NaN
5 6.0 NaN 25.0
6 7.0 350000.0 26.0
7 8.0 55000.0 27.0
8 9.0 60000.0 NaN
9 10.0 70000.0 24.0
จำนวนค่าขาดหายไปต่อคอลัมน์:
Id 1
Salary 2
Age 3
dtype: int64
คอลัมน์ที่มีค่าขาดหายไปน้อยที่สุด: Id
คำอธิบาย: โค้ดนี้ใช้ apply() กับ lambda function เพื่อนับค่า null ในแต่ละคอลัมน์ (axis=0) จากนั้น idxmin() จะคืนค่าชื่อคอลัมน์ที่มีจำนวนน้อยที่สุด