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

แสดง True สำหรับค่า Infinity ใน Pandas DataFrame ด้วย isin()

ใช้เมธอด 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 ได้