在Python中检查数据帧是否包含无穷大 – Pandas
先决条件:熊猫
在多种情况下,数据框可以包含无穷大作为值。本文讨论了我们如何在我们的数据框中跟踪无穷大。
方法
- 导入模块
- 创建一个数据框,对于本文,它是使用字典完成的。要在数据中包含无穷大,请导入 NumPy 模块,并使用np.inf表示正无穷大,使用-np.inf表示负无穷大。
- 根据您的要求使用下面提到的适当方法。
方法一:使用 DataFrame.isinf()函数检查数据框是否包含无穷大。它返回布尔值。如果它包含任何无穷大,它将返回 True。否则,它将返回 False。
句法:
isinf(array [, out])
使用这种方法本身,我们可以得到更多关于数据帧中存在无穷大的信息:
- 检查无穷大作为值
- 计算无穷大值的数量
- 检索无穷大作为值的列名
- 检索无穷大作为值的行索引/索引
例子:
Python3
# 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)
Python3
# 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)
输出:
方法二:使用 np.isfinite(dataframe_name) 检查无限值的存在。它返回布尔值。对于无限值,它将返回 False,对于有限值,它将返回 True。
句法:
isfinite(array [, out])
例子:
蟒蛇3
# 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)
输出: