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.