Để trả về Series chứa số lượng các giá trị duy nhất trong Index, bao gồm cả NaN, hãy dùng index.value_counts() với tham số dropna=False.
Các bước thực hiện
1. Import thư viện cần thiết
import pandas as pd
import numpy as np
2. Tạo Index có chứa NaN
index = pd.Index([50, 10, 70, np.nan, 90, 50, np.nan, np.nan, 30])
3. Hiển thị Index
print("Pandas Index...\n", index)
4. Đếm giá trị duy nhất bao gồm NaN
print("\nĐếm giá trị duy nhất có NaN...\n", index.value_counts(dropna=False))
Ví dụ hoàn chỉnh
import pandas as pd
import numpy as np
# Tạo Index có NaN
index = pd.Index([50, 10, 70, np.nan, 90, 50, np.nan, np.nan, 30])
# Hiển thị Index
print("Pandas Index...\n", index)
# Số lượng phần tử
print("\nSố phần tử (size)...\n", index.size)
# Kiểu dữ liệu
print("\nKiểu dữ liệu (dtype)...\n", index.dtype)
# Đếm giá trị duy nhất, bao gồm NaN (dropna=False)
print("\nĐếm giá trị duy nhất có NaN...\n", index.value_counts(dropna=False))
Kết quả đầu ra
Pandas Index...
Float64Index([50.0, 10.0, 70.0, nan, 90.0, 50.0, nan, nan, 30.0], dtype='float64')
Số phần tử (size)...
9
Kiểu dữ liệu (dtype)...
float64
Đếm giá trị duy nhất có NaN...
NaN 3
50.0 2
10.0 1
70.0 1
90.0 1
30.0 1
dtype: int64
Giải thích: Mặc định dropna=True bỏ qua NaN. Với dropna=False, NaN được tính như một giá trị riêng biệt (xuất hiện 3 lần). Kết quả sắp xếp giảm dần theo tần suất. Index của Series kết quả là các giá trị duy nhất.