python - 未能正确使用 pandas .all()
问题描述
显然我无法理解 .all() 是如何工作的。
我的示例数据:
df=pd.DataFrame([[-1,-1,-1],[1,1,1],[-1e-8,-1e-8,1e-8]],columns=['col0','col1','col2'])
df
col0 col1 col2
0 -1.000000e+00 -1.000000e+00 -1.000000e+00
1 1.000000e+00 1.000000e+00 1.000000e+00
2 -1.000000e-08 -1.000000e-08 -1.000000e-08
现在,我只想选择所有值为正的行(本例中的索引 1),所以我尝试构建一个掩码:
mask=[i for i in df.index if df.loc[i,:].all()>0]
但是列表理解中的条件:
df.loc[0,:].all()>0
True
返回 True,即使第 0 行中的所有值都是负数。事实上,无论我使用 df 的哪个部分,我都会得到 True:
df.all(axis=1)>0
True
df.all()>0
True
我很困惑,我一定错过了一些简单的东西。