Pandas: Find all non-zero values and check any non-zero values
24. Year-wise Non-zero Analysis
Write a Pandas program to find which years have all non-zero values and which years have any non-zero values from world alcohol consumption dataset.
Test Data:
Year WHO region Country Beverage Types Display Value 0 1986 Western Pacific Viet Nam Wine 0.00 1 1986 Americas Uruguay Other 0.50 2 1985 Africa Cte d'Ivoire Wine 1.62 3 1986 Americas Colombia Beer 4.27 4 1987 Americas Saint Kitts and Nevis Beer 1.98
Sample Solution:
Python Code :
import pandas as pd
# World alcohol consumption data
w_a_con = pd.read_csv('world_alcohol.csv')
print("World alcohol consumption sample data:")
print(w_a_con.head())
print("\nFind which years have all non-zero values:")
print(w_a_con.loc[:,w_a_con.all()])
print("\nFind which years have any non-zero values:")
print(w_a_con.loc[:,w_a_con.any()])
Sample Output:
World alcohol consumption sample data:
Year WHO region ... Beverage Types Display Value
0 1986 Western Pacific ... Wine 0.00
1 1986 Americas ... Other 0.50
2 1985 Africa ... Wine 1.62
3 1986 Americas ... Beer 4.27
4 1987 Americas ... Beer 1.98
[5 rows x 5 columns]
Find which years have all non-zero values:
Year ... Beverage Types
0 1986 ... Wine
1 1986 ... Other
2 1985 ... Wine
3 1986 ... Beer
4 1987 ... Beer
5 1987 ... Other
6 1987 ... Wine
7 1985 ... Spirits
8 1986 ... Spirits
9 1984 ... Other
10 1987 ... Wine
11 1989 ... Beer
12 1985 ... Beer
13 1984 ... Other
14 1985 ... Spirits
15 1987 ... Wine
16 1984 ... Wine
17 1989 ... Beer
18 1984 ... Spirits
19 1984 ... Beer
20 1986 ... Wine
21 1989 ... Spirits
22 1984 ... Spirits
23 1984 ... Beer
24 1985 ... Other
25 1984 ... Other
26 1985 ... Wine
27 1984 ... Beer
28 1987 ... Beer
29 1986 ... Other
.. ... ... ...
70 1986 ... Spirits
71 1985 ... Other
72 1987 ... Other
73 1986 ... Other
74 1986 ... Spirits
75 1989 ... Other
76 1985 ... Beer
77 1985 ... Spirits
78 1989 ... Other
79 1989 ... Other
80 1985 ... Other
81 1985 ... Wine
82 1987 ... Spirits
83 1986 ... Other
84 1986 ... Other
85 1985 ... Wine
86 1986 ... Wine
87 1989 ... Wine
88 1987 ... Beer
89 1986 ... Wine
90 1989 ... Wine
91 1989 ... Beer
92 1986 ... Spirits
93 1987 ... Other
94 1985 ... Spirits
95 1984 ... Other
96 1985 ... Wine
97 1984 ... Wine
98 1984 ... Wine
99 1985 ... Wine
[100 rows x 4 columns]
Find which years have any non-zero values:
Year WHO region ... Beverage Types Display Value
0 1986 Western Pacific ... Wine 0.00
1 1986 Americas ... Other 0.50
2 1985 Africa ... Wine 1.62
3 1986 Americas ... Beer 4.27
4 1987 Americas ... Beer 1.98
5 1987 Americas ... Other 0.00
6 1987 Africa ... Wine 0.13
7 1985 Africa ... Spirits 0.39
8 1986 Americas ... Spirits 1.55
9 1984 Africa ... Other 6.10
10 1987 Africa ... Wine 0.20
11 1989 Americas ... Beer 0.62
12 1985 Western Pacific ... Beer 0.00
13 1984 Eastern Mediterranean ... Other 0.00
14 1985 Western Pacific ... Spirits 0.05
15 1987 Africa ... Wine 0.07
16 1984 Americas ... Wine 0.06
17 1989 Africa ... Beer 2.23
18 1984 Europe ... Spirits 1.62
19 1984 Africa ... Beer 1.08
20 1986 South-East Asia ... Wine 0.00
21 1989 Americas ... Spirits 4.51
22 1984 Europe ... Spirits 2.67
23 1984 Europe ... Beer 0.44
24 1985 Africa ... Other NaN
25 1984 Eastern Mediterranean ... Other 0.00
26 1985 Europe ... Wine 1.36
27 1984 Eastern Mediterranean ... Beer 2.22
28 1987 Western Pacific ... Beer 0.11
29 1986 Europe ... Other NaN
.. ... ... ... ... ...
70 1986 Africa ... Spirits 1.02
71 1985 Africa ... Other 0.57
72 1987 Africa ... Other 0.00
73 1986 Eastern Mediterranean ... Other 0.01
74 1986 Americas ... Spirits 2.06
75 1989 Eastern Mediterranean ... Other 0.00
76 1985 Africa ... Beer 0.02
77 1985 Africa ... Spirits 0.01
78 1989 Americas ... Other 0.00
79 1989 Europe ... Other 2.09
80 1985 Africa ... Other 0.84
81 1985 Europe ... Wine 2.54
82 1987 Europe ... Spirits 2.25
83 1986 Europe ... Other NaN
84 1986 South-East Asia ... Other 0.00
85 1985 Africa ... Wine 0.01
86 1986 Americas ... Wine 1.83
87 1989 Eastern Mediterranean ... Wine 0.01
88 1987 Eastern Mediterranean ... Beer 0.42
89 1986 Eastern Mediterranean ... Wine 0.70
90 1989 Africa ... Wine 0.01
91 1989 Europe ... Beer 4.43
92 1986 Africa ... Spirits 0.00
93 1987 Africa ... Other NaN
94 1985 Europe ... Spirits 3.06
95 1984 Africa ... Other 0.00
96 1985 Europe ... Wine 7.38
97 1984 South-East Asia ... Wine 0.00
98 1984 Africa ... Wine 0.00
99 1985 South-East Asia ... Wine 0.00
[100 rows x 5 columns]
Click to download world_alcohol.csv
For more Practice: Solve these Related Problems:
- Write a Pandas program to group the dataset by 'Year' and flag years where all 'Display Value' entries are non-zero.
- Write a Pandas program to compute for each year whether any record has a non-zero 'Display Value' and then report the results.
- Write a Pandas program to aggregate the data by year and then filter out years with one or more zero values in 'Display Value'.
- Write a Pandas program to analyze yearly data to determine which years have exclusively non-zero consumption values and which do not.
Go to:
PREV : Column Renaming.
NEXT :
Complete Data Filtering and NaN Drop.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
