如何在 panda Dataframe 中完全用零删除所有行和列
How to remove all rows and columns entirely with zeros in 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))
这在很多情况下对我有用。
据我了解,行 填充为零 实际上是一行
所有“numeric-named”列(在您的情况下 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
我希望完全删除所有填充为零的行和列。
但它只返回这个。
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))
这在很多情况下对我有用。
据我了解,行 填充为零 实际上是一行 所有“numeric-named”列(在您的情况下 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