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

หาดัชนีแถวที่มีค่า Infinity ใน Pandas DataFrame ด้วย isinf() และ any()

ใช้ np.isinf() ร่วมกับ .any(axis=1) เพื่อสร้าง boolean mask แถวที่มีค่า infinity อย่างน้อยหนึ่งคอลัมน์ แล้วใช้ดัชนี (index) เพื่อดึงหมายเลขแถว

ตัวอย่างโค้ด

import pandas as pd
import numpy as np

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}")

# หาดัชนีแถวที่มี infinity
inf_rows = df.index[np.isinf(df).any(axis=1)]
print("\nดัชนีแถวที่มีค่า Infinity:\n", inf_rows)

ผลลัพธ์

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

ดัชนีแถวที่มีค่า Infinity:
Int64Index([1, 3, 7], dtype='int64')

แถวที่ 1, 3, 7 มีค่า infinity ในคอลัมน์ Reg_Price