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

เขียนโปรแกรม Python เพื่อหาคอลัมน์ที่มีค่าขาดหายไปน้อยที่สุดใน DataFrame

สมมติว่าคุณมี DataFrame และต้องการหาคอลัมน์ที่มีจำนวนค่าขาดหายไป (missing values) น้อยที่สุด

วิธีแก้ปัญหา

  1. สร้าง DataFrame ที่มีคอลัมน์ Id, Salary และ Age
  2. ใช้ df.apply() ร่วมกับ lambda function เพื่อคำนวณผลรวมของค่า null ในแต่ละคอลัมน์ (axis=0)
  3. ใช้ 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() จะคืนค่าชื่อคอลัมน์ที่มีจำนวนน้อยที่สุด