我一直在寻找,show only rows which contain zeros and also way to show rows没有零。问题是我有很多列,我希望能够将此方法应用于除“结果”列之外的所有列,而无需编写包含数百个名称的列表。
我对 isnull() 方法感到非常困惑,因为它只是用 bool 值替换所有值,对我来说看起来毫无用处。
附注您能否编写一段代码来执行相同的操作,但具有无限的值。 pandas 数据框中的 Inf。
非常感谢!
最佳答案
您可以使用 bool 索引,结合loc
和iloc
来选择所需的列,假设您有一个像这样的数据框
df = pd.DataFrame({'a':[0,0,1,1], 'b':[0,1,0,1],'c':[1,1,2,1],'d':[4,1,6,1]})
df
a b c d
0 0 0 1 4
1 0 1 1 1
2 1 0 2 6
3 1 1 1 1
并且您想要选择除 col a
之外具有大于零值的所有行,那么您可以使用以下命令:
df.loc[(df.iloc[:,1:]!=0).all(1)]
输出:
a b c d
1 0 1 1 1
3 1 1 1 1
当您想丢弃 col a
中所有带有零值和 res 的行时,请使用:
df.loc[(df.iloc[:,:1]!=0).all(1)]
输出:
a b c d
2 1 0 2 6
3 1 1 1 1
关于python - Pandas 过滤数据框以仅显示包含零的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59907956/