How to get even or odd rows in Pandas Dataframe?

There is a simple method without applying any function of filters.


import pandas as pd

df=pd.read_csv("http://bit.ly/drinksbycountry")


df.head()


country beer_servings spirit_servings wine_servings total_litres_of_pure_alcohol continent
0 Afghanistan 0 0 0 0.0 Asia
1 Albania 89 132 54 4.9 Europe
2 Algeria 25 0 14 0.7 Africa
3 Andorra 245 138 312 12.4 Europe
4 Angola 217 57 45 5.9 Africa


df.shape

(193, 6)


# Dataframe has 193 records, lets get only even rows without applying any filter.

df[::2].head(10)


country beer_servings spirit_servings wine_servings total_litres_of_pure_alcohol continent
0 Afghanistan 0 0 0 0.0 Asia
2 Algeria 25 0 14 0.7 Africa
4 Angola 217 57 45 5.9 Africa
6 Argentina 193 25 221 8.3 South America
8 Australia 261 72 212 10.4 Oceania
10 Azerbaijan 21 46 5 1.3 Europe
12 Bahrain 42 63 7 2.0 Asia
14 Barbados 143 173 36 6.3 North America
16 Belgium 295 84 212 10.5 Europe
18 Benin 34 4 13 1.1 Africa

 # Lets see how to get odd rows. 

df[['country','beer_servings','continent']][1::2].head(10)
 

country beer_servings continent
1 Albania 89 Europe
3 Andorra 245 Europe
5 Antigua & Barbuda 102 North America
7 Armenia 21 Europe
9 Austria 279 Europe
11 Bahamas 122 North America
13 Bangladesh 0 Asia
15 Belarus 142 Europe
17 Belize 263 North America
19 Bhutan 23 Asia