如何解决如何在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 举报,一经查实,本站将立刻删除。