Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Viết chương trình Python tìm cột có ít giá trị thiếu nhất trong DataFrame

Giả sử bạn có một DataFrame và cần xác định cột có số lượng giá trị thiếu (missing values) nhỏ nhất.

Giải pháp

Để giải quyết bài toán này, ta thực hiện các bước sau:

  • Tạo DataFrame với 3 cột: Id, Salary, Age.
  • Sử dụng df.apply() kết hợp hàm lambda để tính tổng số giá trị null của từng cột (axis=0).
  • Sử dụng df.idxmin() để lấy tên cột có giá trị nhỏ nhất (tức là ít missing values nhất).

Mã ví dụ

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 là:\n", df)

# Tính số lượng missing values mỗi cột
missing_counts = df.apply(lambda x: x.isnull().sum(), axis=0)
print("Số missing values mỗi cột:\n", missing_counts)

# Tìm cột có ít missing values nhất
lowest_missing_col = missing_counts.idxmin()
print("Cột có ít missing values nhất:", lowest_missing_col)

Kết quả

DataFrame là:
     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

Số missing values mỗi cột:
Id       1
Salary   2
Age      3
dtype: int64

Cột có ít missing values nhất: Id

Giải thích: Cột Id chỉ có 1 giá trị NaN, trong khi Salary có 2 và Age có 3. Do đó Id là cột có ít giá trị thiếu nhất.