Filter columns of only zeros from a Pandas data frame

I have a Pandas data frame where I would like to filter out all columns containing only zeros. For example, in the Data Frame below, I would like to remove column 2:

0 1 2 3 4 0 0.381 0.794 0.000 0.964 0.304 1 0.538 0.029 0.000 0.327 0.928 2 0.041 0.312 0.000 0.208 0.284 3 0.406 0.786 0.000 0.334 0.118 4 0.511 0.166 0.000 0.181 0.980 

How can i do this? I tried something like this:

 df.filter(lambda x: x == 0) 
+8
python pandas
source share
1 answer

The following works for me. It gives a series in which the column names are now the index, and the value for the index is True / False depending on whether all the elements are in the column.

 import pandas, numpy as np # Create DataFrame "df" like yours... df.apply(lambda x: np.all(x==0)) 
+10
source share

All Articles