Population ages 0-14, male

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 9,241 -1.75% 192
Afghanistan Afghanistan 9,351,027 +2.04% 21
Angola Angola 8,447,332 +2.61% 25
Albania Albania 238,082 -2.34% 145
Andorra Andorra 4,987 -1.5% 203
United Arab Emirates United Arab Emirates 884,836 +1.89% 104
Argentina Argentina 5,066,613 -2.33% 43
Armenia Armenia 302,884 +0.715% 140
American Samoa American Samoa 6,361 -3.33% 196
Antigua & Barbuda Antigua & Barbuda 8,468 -1.82% 194
Australia Australia 2,493,907 +0.979% 72
Austria Austria 671,480 -0.0243% 115
Azerbaijan Azerbaijan 1,171,279 -1.91% 95
Burundi Burundi 3,157,855 +1.13% 61
Belgium Belgium 971,204 -1.08% 102
Benin Benin 3,045,695 +1.8% 64
Burkina Faso Burkina Faso 4,997,414 +0.812% 45
Bangladesh Bangladesh 25,079,418 -0.221% 9
Bulgaria Bulgaria 479,303 -0.439% 125
Bahrain Bahrain 151,521 -0.773% 157
Bahamas Bahamas 36,365 -1.81% 179
Bosnia & Herzegovina Bosnia & Herzegovina 213,430 -2.05% 148
Belarus Belarus 765,980 -2.76% 109
Belize Belize 56,734 -0.0775% 170
Bermuda Bermuda 4,495 -2.41% 204
Bolivia Bolivia 1,880,791 +0.18% 78
Brazil Brazil 21,266,577 -0.951% 10
Barbados Barbados 24,754 -1.42% 182
Brunei Brunei 50,035 -0.19% 173
Bhutan Bhutan 85,785 -2.09% 165
Botswana Botswana 407,993 +1.21% 133
Central African Republic Central African Republic 1,317,244 +3.16% 90
Canada Canada 3,192,999 +1.73% 60
Switzerland Switzerland 693,202 +1.2% 113
Chile Chile 1,708,372 -1.88% 82
China China 120,303,655 -3.76% 2
Côte d’Ivoire Côte d’Ivoire 6,596,617 +1.33% 31
Cameroon Cameroon 6,081,227 +1.89% 36
Congo - Kinshasa Congo - Kinshasa 25,210,410 +3.2% 8
Congo - Brazzaville Congo - Brazzaville 1,292,177 +1.35% 91
Colombia Colombia 5,471,119 -0.53% 41
Comoros Comoros 163,087 +1.08% 153
Cape Verde Cape Verde 68,855 -2.76% 167
Costa Rica Costa Rica 492,473 -2.29% 123
Cuba Cuba 867,071 -1.69% 105
Curaçao Curaçao 11,871 -1.85% 189
Cayman Islands Cayman Islands 6,089 +1.18% 198
Cyprus Cyprus 112,430 +1.08% 162
Czechia Czechia 858,116 -1.53% 106
Germany Germany 5,964,139 -0.518% 37
Djibouti Djibouti 172,456 -0.011% 151
Dominica Dominica 5,938 -1.36% 200
Denmark Denmark 481,526 -0.596% 124
Dominican Republic Dominican Republic 1,547,940 -0.415% 85
Algeria Algeria 7,245,541 +0.37% 29
Ecuador Ecuador 2,264,151 -1.35% 75
Egypt Egypt 19,088,819 +0.368% 11
Eritrea Eritrea 680,885 +0.47% 114
Spain Spain 3,245,083 -1.65% 59
Estonia Estonia 110,281 -1.85% 163
Ethiopia Ethiopia 26,286,726 +1.83% 7
Finland Finland 421,884 -1.05% 132
Fiji Fiji 128,094 -0.335% 159
France France 5,786,493 -1.36% 39
Faroe Islands Faroe Islands 5,593 -0.551% 201
Micronesia (Federated States of) Micronesia (Federated States of) 18,573 -0.29% 186
Gabon Gabon 465,821 +1.71% 127
United Kingdom United Kingdom 6,100,286 -0.229% 35
Georgia Georgia 394,146 -2.21% 136
Ghana Ghana 6,241,931 +0.887% 34
Gibraltar Gibraltar 3,577 +1.45% 207
Guinea Guinea 3,061,017 +1.58% 63
Gambia Gambia 561,099 +1.09% 119
Guinea-Bissau Guinea-Bissau 432,293 +1.06% 131
Equatorial Guinea Equatorial Guinea 355,895 +1.94% 138
Greece Greece 706,430 -2.76% 111
Grenada Grenada 11,616 -1.97% 190
Greenland Greenland 6,073 -0.0987% 199
Guatemala Guatemala 2,949,687 -0.19% 65
Guam Guam 22,497 +0.676% 184
Guyana Guyana 122,976 +0.0171% 161
Hong Kong SAR China Hong Kong SAR China 402,740 -1.81% 135
Honduras Honduras 1,696,524 +0.464% 83
Croatia Croatia 277,154 -1.3% 141
Haiti Haiti 1,850,620 -0.0794% 79
Hungary Hungary 707,614 -0.848% 110
Indonesia Indonesia 35,787,371 -0.533% 5
Isle of Man Isle of Man 6,099 -2.18% 197
India India 186,139,712 -0.927% 1
Ireland Ireland 510,782 -1.08% 121
Iran Iran 10,559,217 -0.725% 18
Iraq Iraq 8,632,554 +0.743% 23
Iceland Iceland 36,950 +1.23% 178
Israel Israel 1,402,781 +0.541% 88
Italy Italy 3,606,221 -2.08% 57
Jamaica Jamaica 270,216 -2.27% 142
Jordan Jordan 1,806,250 -0.681% 81
Japan Japan 7,277,374 -2.3% 28
Kazakhstan Kazakhstan 3,089,654 +0.763% 62
Kenya Kenya 10,465,469 +0.33% 19
Kyrgyzstan Kyrgyzstan 1,199,767 +0.702% 93
Cambodia Cambodia 2,683,143 +0.151% 69
Kiribati Kiribati 23,684 +1.11% 183
St. Kitts & Nevis St. Kitts & Nevis 4,253 -0.328% 205
South Korea South Korea 2,806,433 -3.64% 66
Kuwait Kuwait 463,231 +0.316% 128
Laos Laos 1,196,434 +0.207% 94
Lebanon Lebanon 779,783 -1.45% 108
Liberia Liberia 1,123,242 +0.992% 96
Libya Libya 1,038,678 -0.944% 98
St. Lucia St. Lucia 15,980 -1.76% 187
Liechtenstein Liechtenstein 3,020 -0.0331% 209
Sri Lanka Sri Lanka 2,460,353 -1.96% 73
Lesotho Lesotho 405,772 -0.00887% 134
Lithuania Lithuania 217,821 -0.653% 147
Luxembourg Luxembourg 54,644 +1.42% 172
Latvia Latvia 148,420 -2.46% 158
Macao SAR China Macao SAR China 49,056 +0.131% 174
Saint Martin (French part) Saint Martin (French part) 2,810 -4.03% 211
Morocco Morocco 5,001,523 -0.607% 44
Monaco Monaco 2,639 +1.46% 212
Moldova Moldova 242,373 -3.5% 143
Madagascar Madagascar 6,356,859 +1.66% 33
Maldives Maldives 54,938 -2.3% 171
Mexico Mexico 16,318,054 -0.784% 13
Marshall Islands Marshall Islands 6,668 -4.1% 195
North Macedonia North Macedonia 154,414 -3.24% 156
Mali Mali 5,709,542 +2.27% 40
Malta Malta 38,757 +3% 177
Myanmar (Burma) Myanmar (Burma) 6,798,388 -0.203% 30
Montenegro Montenegro 58,617 -1.04% 169
Mongolia Mongolia 583,427 -0.186% 117
Northern Mariana Islands Northern Mariana Islands 5,153 -4.15% 202
Mozambique Mozambique 7,734,657 +2.35% 27
Mauritania Mauritania 1,117,794 +2.17% 97
Mauritius Mauritius 92,174 -1.96% 164
Malawi Malawi 4,407,846 +1.15% 49
Malaysia Malaysia 3,998,115 -1.11% 53
Namibia Namibia 558,023 +1.46% 120
New Caledonia New Caledonia 31,729 +0.0126% 180
Niger Niger 6,402,307 +2.53% 32
Nigeria Nigeria 48,402,736 +0.935% 3
Nicaragua Nicaragua 1,009,482 -0.175% 101
Netherlands Netherlands 1,384,433 -0.334% 89
Norway Norway 463,082 -1.02% 129
Nepal Nepal 4,340,849 -1.26% 50
Nauru Nauru 2,322 -0.557% 213
New Zealand New Zealand 496,373 +0.336% 122
Oman Oman 665,044 +2.45% 116
Pakistan Pakistan 47,116,524 +0.498% 4
Panama Panama 576,412 -0.235% 118
Peru Peru 4,174,795 -0.5% 52
Philippines Philippines 16,475,040 -1.65% 12
Palau Palau 1,689 -1.52% 215
Papua New Guinea Papua New Guinea 1,836,912 +0.729% 80
Poland Poland 2,779,481 -2.25% 67
Puerto Rico Puerto Rico 191,258 -3.23% 150
North Korea North Korea 2,576,683 +0.145% 71
Portugal Portugal 701,206 +0.463% 112
Paraguay Paraguay 1,012,826 +0.57% 100
Palestinian Territories Palestinian Territories 1,025,581 +1.63% 99
French Polynesia French Polynesia 27,811 -2.93% 181
Qatar Qatar 220,467 +6.54% 146
Romania Romania 1,533,255 -0.936% 86
Russia Russia 12,736,841 -1.53% 15
Rwanda Rwanda 2,677,763 +1.22% 70
Saudi Arabia Saudi Arabia 4,287,827 +3.49% 51
Sudan Sudan 10,344,888 +0.363% 20
Senegal Senegal 3,663,166 +0.96% 56
Singapore Singapore 361,045 +0.977% 137
Solomon Islands Solomon Islands 156,264 +1.29% 155
Sierra Leone Sierra Leone 1,658,004 +0.979% 84
El Salvador El Salvador 807,465 -1.23% 107
San Marino San Marino 2,115 -3.03% 214
Somalia Somalia 4,493,023 +3.35% 47
Serbia Serbia 476,082 -0.64% 126
South Sudan South Sudan 2,350,009 +1.54% 74
São Tomé & Príncipe São Tomé & Príncipe 44,845 +0.918% 175
Suriname Suriname 82,751 -0.296% 166
Slovakia Slovakia 437,906 -1.02% 130
Slovenia Slovenia 160,686 -1.05% 154
Sweden Sweden 923,380 -1.24% 103
Eswatini Eswatini 208,432 +0.143% 149
Sint Maarten Sint Maarten 3,533 -1.78% 208
Seychelles Seychelles 12,375 +0.463% 188
Syria Syria 3,682,523 +0.522% 55
Turks & Caicos Islands Turks & Caicos Islands 3,675 +0.492% 206
Chad Chad 4,738,511 +3.53% 46
Togo Togo 1,898,468 +1.36% 77
Thailand Thailand 5,441,680 -2.29% 42
Tajikistan Tajikistan 1,941,989 +1.43% 76
Turkmenistan Turkmenistan 1,206,389 +1.26% 92
Timor-Leste Timor-Leste 239,897 -0.401% 144
Tonga Tonga 19,069 -0.971% 185
Trinidad & Tobago Trinidad & Tobago 123,697 -1.43% 160
Tunisia Tunisia 1,518,183 -1.08% 87
Turkey Turkey 9,346,135 -1.53% 22
Tuvalu Tuvalu 1,674 -0.771% 216
Tanzania Tanzania 14,726,812 +2.5% 14
Uganda Uganda 10,976,455 +1.92% 17
Ukraine Ukraine 2,705,945 -2.69% 68
Uruguay Uruguay 317,616 -2.13% 139
United States United States 30,220,947 -0.594% 6
Uzbekistan Uzbekistan 5,860,337 +2.79% 38
St. Vincent & Grenadines St. Vincent & Grenadines 10,878 -2.37% 191
Venezuela Venezuela 3,721,740 -2.02% 54
British Virgin Islands British Virgin Islands 2,903 -3.1% 210
U.S. Virgin Islands U.S. Virgin Islands 8,958 -0.566% 193
Vietnam Vietnam 12,106,488 -0.818% 16
Vanuatu Vanuatu 64,720 +1.53% 168
Samoa Samoa 43,217 +0.0347% 176
Kosovo Kosovo 164,968 -11.5% 152
Yemen Yemen 8,549,471 +2.79% 24
South Africa South Africa 8,323,326 +0.549% 26
Zambia Zambia 4,417,320 +1.64% 48
Zimbabwe Zimbabwe 3,422,424 +0.715% 58

                    
# Install missing packages
import sys
import subprocess

def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# Required packages
for package in ['wbdata', 'country_converter']:
try:
__import__(package)
except ImportError:
install(package)

# Import libraries
import wbdata
import country_converter as coco
from datetime import datetime

# Define World Bank indicator code
dataset_code = 'SP.POP.0014.MA.IN'

# Download data from World Bank API
data = wbdata.get_dataframe({dataset_code: 'value'},
date=(datetime(1960, 1, 1), datetime.today()),
parse_dates=True,
keep_levels=True).reset_index()

# Extract year
data['year'] = data['date'].dt.year

# Convert country names to ISO codes using country_converter
cc = coco.CountryConverter()
data['iso2c'] = cc.convert(names=data['country'], to='ISO2', not_found=None)
data['iso3c'] = cc.convert(names=data['country'], to='ISO3', not_found=None)

# Filter out rows where ISO codes could not be matched — likely not real countries
data = data[data['iso2c'].notna() & data['iso3c'].notna()]

# Sort for calculation
data = data.sort_values(['iso3c', 'year'])

# Calculate YoY absolute and percent change
data['value_change'] = data.groupby('iso3c')['value'].diff()
data['value_change_percent'] = data.groupby('iso3c')['value'].pct_change() * 100

# Calculate ranks (higher GDP per capita = better rank)
data['rank'] = data.groupby('year')['value'].rank(ascending=False, method='dense')

# Calculate rank change from previous year
data['rank_change'] = data.groupby('iso3c')['rank'].diff()

# Select desired columns
final_df = data[['country', 'iso2c', 'iso3c', 'year', 'value',
'value_change', 'value_change_percent', 'rank', 'rank_change']].copy()

# Optional: Add labels as metadata (could be useful for export or UI)
column_labels = {
'country': 'Country name',
'iso2c': 'ISO 2-letter country code',
'iso3c': 'ISO 3-letter country code',
'year': 'Year',
'value': 'GDP per capita (current US$)',
'value_change': 'Year-over-Year change in value',
'value_change_percent': 'Year-over-Year percent change in value',
'rank': 'Country rank by GDP per capita (higher = richer)',
'rank_change': 'Change in rank from previous year'
}

# Display first few rows
print(final_df.head(10))

# Optional: Save to CSV
#final_df.to_csv("gdp_per_capita_cleaned.csv", index=False)
                    
                
                    
# Check and install required packages
required_packages <- c("WDI", "countrycode", "dplyr")

for (pkg in required_packages) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    install.packages(pkg)
  }
}

# Load the necessary libraries
library(WDI)
library(dplyr)
library(countrycode)

# Define the dataset code (World Bank indicator code)
dataset_code <- 'SP.POP.0014.MA.IN'

# Download data using WDI package
dat <- WDI(indicator = dataset_code)

# Filter only countries using 'is_country' from countrycode
# This uses iso2c to identify whether the entry is a recognized country
dat <- dat %>%
  filter(countrycode(iso2c, origin = 'iso2c', destination = 'country.name', warn = FALSE) %in%
           countrycode::codelist$country.name.en)

# Ensure dataset is ordered by country and year
dat <- dat %>%
  arrange(iso3c, year)

# Rename the dataset_code column to "value" for easier manipulation
dat <- dat %>%
  rename(value = !!dataset_code)

# Calculate year-over-year (YoY) change and percentage change
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(
    value_change = value - lag(value),                              # Absolute change from previous year
    value_change_percent = 100 * (value - lag(value)) / lag(value) # Percent change from previous year
  ) %>%
  ungroup()

# Calculate rank by year (higher value => higher rank)
dat <- dat %>%
  group_by(year) %>%
  mutate(rank = dense_rank(desc(value))) %>% # Rank countries by descending value
  ungroup()

# Calculate rank change (positive = moved up, negative = moved down)
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(rank_change = rank - lag(rank)) %>% # Change in rank compared to previous year
  ungroup()

# Select and reorder final columns
final_data <- dat %>%
  select(
    country,
    iso2c,
    iso3c,
    year,
    value,
    value_change,
    value_change_percent,
    rank,
    rank_change
  )

# Add labels (variable descriptions)
attr(final_data$country, "label") <- "Country name"
attr(final_data$iso2c, "label") <- "ISO 2-letter country code"
attr(final_data$iso3c, "label") <- "ISO 3-letter country code"
attr(final_data$year, "label") <- "Year"
attr(final_data$value, "label") <- "GDP per capita (current US$)"
attr(final_data$value_change, "label") <- "Year-over-Year change in value"
attr(final_data$value_change_percent, "label") <- "Year-over-Year percent change in value"
attr(final_data$rank, "label") <- "Country rank by GDP per capita (higher = richer)"
attr(final_data$rank_change, "label") <- "Change in rank from previous year"

# Print the first few rows of the final dataset
print(head(final_data, 10))