Recently I needed to identify which of the rows in a CSV file contained 0 values. This was interesting because normally I tend to look at this problem within columns rather than rows. Pandas provides a neat solution to this which I’ll demonstrate below using this data as an example:
import pandas as pd d = {'a': [2,0,2,3,0,5, 9], 'b': [5,0,1,0,11,4,6]} df = pd.DataFrame(d)
This data frame should look like this:
a b 0 0 0 1 2 1 2 3 0 3 0 11 4 5 4 5 9 6
Now, the final step to subset the data based on the existence of a 0 value within a row is to use the apply function and to look to see if a 0 is in the row values:
import pandas as pd zero_rows_df = df[df.apply(lambda row: 0 in row.values, axis=1)]
That’s it! You should now have a dataframe containing only the 0 value rows:
a b 1 0 0 3 3 0 4 0 11