ใช้เมธอด isin() ร่วมกับลิสต์ [np.inf, -np.inf] เพื่อสร้าง boolean mask แสดง True ที่ตำแหน่งที่มีค่า infinity (บวกหรือลบ)
ตัวอย่างโค้ด
import pandas as pd
import numpy as np
# ข้อมูลมีค่า infinity
d = {"Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000, 900, np.inf]}
df = pd.DataFrame(d)
print("DataFrame:\n", df)
# นับจำนวนค่า infinity
inf_count = np.isinf(df).values.sum()
print(f"\nจำนวนค่า Infinity: {inf_count}")
# แสดง True/False สำหรับค่า infinity
inf_mask = df.isin([np.inf, -np.inf])
print("\nMask ค่า Infinity (True = เป็น Infinity):\n", inf_mask)
ผลลัพธ์
DataFrame:
Reg_Price
0 7000.505700
1 inf
2 5000.000000
3 inf
4 9000.757680
5 6000.000000
6 900.000000
7 inf
จำนวนค่า Infinity: 3
Mask ค่า Infinity (True = เป็น Infinity):
Reg_Price
0 False
1 True
2 False
3 True
4 False
5 False
6 False
7 True
วิธีนี้ตรวจจับทั้ง np.inf และ -np.inf ได้