Python 错误:无法从数据帧中删除无限值

Python 错误:无法从数据帧中删除无限值,python,pandas,Python,Pandas,这是我的数据帧df: col1 col2 -0.441406 2.523047 -0.321105 1.555589 -0.412857 2.223047 -0.356610 2.513048 当我检查df时,我看到有一些无穷大的值 np.any(np.isnan(df)) np.all(np.isfinite(df)) False True NaN和infinite之间有什么区别?另外,如何删除所有无限值以在np.all(np.isfinite(X))中实现 这就

这是我的数据帧
df

col1       col2
-0.441406  2.523047
-0.321105  1.555589 
-0.412857  2.223047
-0.356610  2.513048
当我检查df时,我看到有一些无穷大的值

np.any(np.isnan(df))
np.all(np.isfinite(df))

False 
True
NaN和infinite之间有什么区别?另外,如何删除所有无限值以在
np.all(np.isfinite(X))
中实现

这就是我所尝试的:

df = df.replace([np.inf, -np.inf], np.nan).dropna(how="all")
但是,检查
无限
还是给了我真实的答案


此外,
.apply(lambda s:s[np.isfinite(s)].dropna()).count()提供的所有列的行数与
df.shape
提供的行数相同,这表明缺少无限值。但在这种情况下,为什么
np.all(np.isfinite(df))
返回True?

您的问题类似于, 您是否尝试过:

df.replace([np.inf, -np.inf], np.nan).dropna(subset=["col1", "col2"], how="all")

np.nan
不被视为有限的
,您可以将
np.nan
替换为任何有限的编号参见该代码示例:


结果:

     A    B    C
0  1.0  inf -inf
False
     A   B   C
0  1.0 NaN NaN
False
     A    B    C
0  1.0  0.0  0.0
True

它与我在问题中发布的内容有何不同?这正是我尝试过的,但没有成功。不完全一样,因为:
.dropna(subset=[“col1”,“col2”],how=“all”)
!=
.dropna()
我应该提到所有列吗?我可以做
.dropna(subset=df.columns,how=“all”)
?我在我的帖子中添加了Jupyter笔记本的屏幕截图。是的,你可以做:subset=df.columns
     A    B    C
0  1.0  inf -inf
False
     A   B   C
0  1.0 NaN NaN
False
     A    B    C
0  1.0  0.0  0.0
True