微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。