在Python Pandas中检查数据框架是否包含无穷大
在不同的情况下,数据框可以包含无穷大的值。本文讨论了我们如何在数据框中跟踪无穷大的情况。
步骤
- Import module
- 创建一个数据框架,对于本文来说,它是用一个字典来完成的。为了在数据中包含无穷大,请导入NumPy模块,并使用np.inf表示正无穷大,使用-np.inf表示负无穷大。
- 根据你的要求,从下面提到的方法中使用适当的方法。
方法1:使用DataFrame.isinf()函数来检查数据帧是否包含无穷大。它返回布尔值。如果它包含任何无穷大,它将返回True。否则,它将返回False。
语法:
isinf(array [, out])
利用这种方法本身,我们可以得出更多关于我们的数据框架中存在无穷大的信息。
- 检查无限大的值
- 计算无穷大值的数量
- 检索以无穷大为值的列名
- 检索以无穷大为值的行索引/索引
示例:
# Import required libraries
import pandas as pd
import numpy as np
# Create dataframe using dictionary
data = {'Student ID': [10, 11, 12, 13, 14],
'Age': [23, 22, 24, 22, 25],
'Weight': [66, 72, np.inf, 68, -np.inf]}
df = pd.DataFrame(data)
display(df)
# checking for infinity
print()
print("checking for infinity")
ds = df.isin([np.inf, -np.inf])
print(ds)
# printing the count of infinity values
print()
print("printing the count of infinity values")
count = np.isinf(df).values.sum()
print("It contains " + str(count) + " infinite values")
# counting infinity in a particular column name
c = np.isinf(df['Weight']).values.sum()
print("It contains " + str(c) + " infinite values")
# printing column name where infinity is present
print()
print("printing column name where infinity is present")
col_name = df.columns.to_series()[np.isinf(df).any()]
print(col_name)
# printing row index with infinity
print()
print("printing row index with infinity ")
r = df.index[np.isinf(df).any(1)]
print(r)
输出:
方法2:使用**np.isfinite(dataframe_name) ** 来检查是否存在无限的值。它返回布尔值。对于无限值,它将返回False,对于有限值,它将返回True。
语法:
isfinite(array [, out])
示例:
# Import required libraries
import pandas as pd
import numpy as np
# Create dataframe using dictionary
data = {'Student ID': [10, 11, 12, 13, 14], 'Age': [
23, 22, 24, 22, 25], 'Weight': [66, 72, np.inf, 68, -np.inf]}
df = pd.DataFrame(data)
d = np.isfinite(df)
display(d)
输出: