如何在Panda Dataframe中完全用零删除所有行和列

问题描述

我希望完全删除所有用零填充的行和列。

但是它只返回这个。

      Box_deatils    1    5
0           1  0.0  0.0
1           2  1.0  0.0
2           3  1.0  0.0
3           4  0.0  0.0
4           5  0.0  0.0
5           6  0.0  1.0
  Box_deatils    1    5
0           1  0.0  0.0
1           2  1.0  0.0
2           3  1.0  0.0
3           4  0.0  0.0
4           5  0.0  0.0
5           6  0.0  1.0
 

行清除仅发生在列中

请帮助查找下面的问题。

Soln=[[0. 0. 0. 0. 0. 0.]
     [1. 0. 0. 0. 0. 0.]
     [1. 0. 0. 0. 0. 0.]
     [0. 0. 0. 0. 0. 0.]
     [0. 0. 0. 0. 0. 0.]
     [0. 0. 0. 0. 1. 0.]]
    
    result=pd.DataFrame(Soln)

Final_result=result.loc[:,(result !=0).any(axis=0)]

print(Final_result)

Final_result=Final_result.loc[(Final_result !=0).any(axis=1)]

print(Final_result)

解决方法

请谨慎使用.loc.iloc,它们不是同一件事,在此处提供更多信息:loc and iloc in Pandas

我会使用“ loc / iloc”方法或.where方法,我个人认为比较容易:

df= df.where((df['column1'] != 0) & (df['column2'] != 0))

这在很多情况下对我都有效。

,

据我了解,填充零的行实际上是一行 所有“数字名称”列(在您的情况下为 1 5 )都只有零 ( Box_deatils (或 Box_details )列中的值无关紧要)。

要执行此操作,可以运行:

df.drop(df.index[df.iloc[:,1:].eq(0).all(axis=1)],inplace=True)

df 现在包含:

   Box_deatils    1    5
1            2  1.0  0.0
2            3  1.0  0.0
5            6  0.0  1.0

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...