Population ages 15-19, female (% of female population)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 6.02 -0.695% 151
Afghanistan Afghanistan 11 -0.879% 18
Angola Angola 10.5 +1.13% 40
Albania Albania 5.63 -2.43% 168
Andorra Andorra 5.18 +2.04% 183
United Arab Emirates United Arab Emirates 5.92 -3.78% 156
Argentina Argentina 7.51 +0.733% 109
Armenia Armenia 5.81 +2.46% 160
American Samoa American Samoa 9.9 +0.966% 56
Antigua & Barbuda Antigua & Barbuda 6.53 +1.51% 141
Australia Australia 5.86 +1.8% 159
Austria Austria 4.61 -0.233% 208
Azerbaijan Azerbaijan 6.83 +3.95% 129
Burundi Burundi 11.4 +2.76% 10
Belgium Belgium 5.59 +1.84% 170
Benin Benin 10.5 +0.306% 39
Burkina Faso Burkina Faso 11.2 +1.22% 14
Bangladesh Bangladesh 9.58 -3.05% 64
Bulgaria Bulgaria 4.74 +3.01% 204
Bahrain Bahrain 7 +1.23% 125
Bahamas Bahamas 6.81 +0.823% 131
Bosnia & Herzegovina Bosnia & Herzegovina 4.75 -0.597% 203
Belarus Belarus 4.89 +5.33% 195
Belize Belize 9.17 -2.62% 71
Bermuda Bermuda 4.81 +1.28% 199
Bolivia Bolivia 9.38 -0.55% 69
Brazil Brazil 6.78 -1.71% 133
Barbados Barbados 6.09 +0.28% 149
Brunei Brunei 7.04 -2.89% 122
Bhutan Bhutan 8.83 -3.22% 80
Botswana Botswana 9.65 -2.52% 61
Central African Republic Central African Republic 11.8 -1.52% 3
Canada Canada 5.36 +0.749% 177
Switzerland Switzerland 4.72 +1.09% 205
Chile Chile 5.99 -0.0682% 153
China China 5.49 +2.18% 172
Côte d’Ivoire Côte d’Ivoire 10.6 +2.21% 36
Cameroon Cameroon 10.7 +0.361% 27
Congo - Kinshasa Congo - Kinshasa 10.4 +0.48% 42
Congo - Brazzaville Congo - Brazzaville 10.6 +2.06% 34
Colombia Colombia 7.27 -2.56% 114
Comoros Comoros 9.9 +0.185% 55
Cape Verde Cape Verde 8.94 +0.807% 77
Costa Rica Costa Rica 6.83 +0.0505% 130
Cuba Cuba 5.09 -0.797% 186
Curaçao Curaçao 5.3 -0.953% 178
Cayman Islands Cayman Islands 5.18 +2.18% 182
Cyprus Cyprus 4.84 +0.0725% 197
Czechia Czechia 5.2 +3.05% 180
Germany Germany 4.38 +0.502% 210
Djibouti Djibouti 9.7 -2.05% 59
Dominica Dominica 6.73 +1.65% 135
Denmark Denmark 5.69 -0.142% 165
Dominican Republic Dominican Republic 8.29 -0.56% 92
Algeria Algeria 7.8 +4.04% 103
Ecuador Ecuador 8.5 -0.418% 86
Egypt Egypt 9.11 +0.713% 74
Eritrea Eritrea 11.8 -0.54% 4
Spain Spain 5.1 +1.4% 185
Estonia Estonia 5.19 +3.87% 181
Ethiopia Ethiopia 11 -1.12% 19
Finland Finland 5.45 +1.54% 174
Fiji Fiji 8.81 +0.593% 81
France France 5.87 +0.588% 157
Faroe Islands Faroe Islands 7.05 -1% 121
Micronesia (Federated States of) Micronesia (Federated States of) 10.2 -0.719% 44
Gabon Gabon 9.44 +1.22% 67
United Kingdom United Kingdom 5.7 +2.33% 164
Georgia Georgia 5.57 +4.88% 171
Ghana Ghana 10.1 -0.0696% 49
Gibraltar Gibraltar 6.09 -0.643% 148
Guinea Guinea 10.6 +0.313% 32
Gambia Gambia 10.9 +0.74% 21
Guinea-Bissau Guinea-Bissau 10.7 +0.245% 28
Equatorial Guinea Equatorial Guinea 10 +2.16% 53
Greece Greece 4.94 +2.94% 191
Grenada Grenada 7.19 +0.697% 118
Greenland Greenland 6.34 +0.458% 145
Guatemala Guatemala 10.1 -1.52% 50
Guam Guam 7.11 +0.306% 120
Guyana Guyana 8.31 +0.45% 90
Hong Kong SAR China Hong Kong SAR China 3.4 +0.00435% 216
Honduras Honduras 9.65 -1.74% 62
Croatia Croatia 5 +2.65% 189
Haiti Haiti 9.73 -0.524% 58
Hungary Hungary 4.88 +1.61% 196
Indonesia Indonesia 8.06 +0.322% 99
Isle of Man Isle of Man 5.15 +2.53% 184
India India 8.63 -1.57% 84
Ireland Ireland 6.56 +1.96% 140
Iran Iran 6.87 +1.53% 128
Iraq Iraq 10.2 +0.468% 47
Iceland Iceland 6.34 +0.901% 144
Israel Israel 7.74 +0.553% 104
Italy Italy 4.65 +0.614% 206
Jamaica Jamaica 7.62 -2.37% 105
Jordan Jordan 10.1 +1.66% 48
Japan Japan 4.33 +0.235% 211
Kazakhstan Kazakhstan 7.39 +4.65% 112
Kenya Kenya 11.4 +0.4% 9
Kyrgyzstan Kyrgyzstan 8.15 +2.46% 94
Cambodia Cambodia 8.9 +0.346% 78
Kiribati Kiribati 9.07 +3.75% 75
St. Kitts & Nevis St. Kitts & Nevis 6.63 -0.502% 138
South Korea South Korea 4.3 -0.204% 212
Kuwait Kuwait 7.19 +2.17% 117
Laos Laos 9.39 -0.589% 68
Lebanon Lebanon 8.44 +1.34% 88
Liberia Liberia 11.3 +0.729% 13
Libya Libya 9.05 +0.306% 76
St. Lucia St. Lucia 6.64 -1.42% 137
Liechtenstein Liechtenstein 4.76 -0.954% 201
Sri Lanka Sri Lanka 7.5 -0.393% 110
Lesotho Lesotho 10 +0.0957% 52
Lithuania Lithuania 4.61 +1.83% 209
Luxembourg Luxembourg 5.07 +0.879% 187
Latvia Latvia 5 +3.89% 190
Macao SAR China Macao SAR China 3.84 +2.37% 215
Saint Martin (French part) Saint Martin (French part) 6.65 +0.33% 136
Morocco Morocco 8.25 +0.799% 93
Monaco Monaco 3.85 +0.727% 214
Moldova Moldova 5.74 +3.93% 162
Madagascar Madagascar 10.6 -0.144% 31
Maldives Maldives 7.49 +5.41% 111
Mexico Mexico 8.15 -1.04% 95
Marshall Islands Marshall Islands 12.1 +2.93% 2
North Macedonia North Macedonia 5.42 +0.718% 175
Mali Mali 11.3 +0.665% 12
Malta Malta 4.22 +1.45% 213
Myanmar (Burma) Myanmar (Burma) 7.85 -1.5% 102
Montenegro Montenegro 5.81 +1.13% 161
Mongolia Mongolia 7.53 +7.24% 107
Northern Mariana Islands Northern Mariana Islands 8.79 +1.86% 82
Mozambique Mozambique 10.6 +0.721% 35
Mauritania Mauritania 10.6 +0.424% 30
Mauritius Mauritius 6.79 -3.63% 132
Malawi Malawi 11.7 +0.525% 5
Malaysia Malaysia 7.96 -2.53% 100
Namibia Namibia 9.13 +0.82% 73
New Caledonia New Caledonia 7.12 -1.23% 119
Niger Niger 11.3 +0.488% 11
Nigeria Nigeria 11.1 +0.958% 17
Nicaragua Nicaragua 9.15 -0.457% 72
Netherlands Netherlands 5.42 -1.29% 176
Norway Norway 5.94 +1.31% 155
Nepal Nepal 9.47 -2.37% 66
Nauru Nauru 9.73 +5.57% 57
New Zealand New Zealand 6.14 +1.35% 147
Oman Oman 7.28 +2.09% 113
Pakistan Pakistan 10.4 +0.966% 41
Panama Panama 7.94 -0.545% 101
Peru Peru 8.3 -0.941% 91
Philippines Philippines 9.6 +0.325% 63
Palau Palau 7.23 +2.35% 115
Papua New Guinea Papua New Guinea 9.67 -0.554% 60
Poland Poland 4.91 +3.85% 194
Puerto Rico Puerto Rico 5.29 -1.82% 179
North Korea North Korea 5.98 -1.47% 154
Portugal Portugal 4.65 -0.387% 207
Paraguay Paraguay 8.32 -0.577% 89
Palestinian Territories Palestinian Territories 10.3 +0.52% 43
French Polynesia French Polynesia 7.6 +0.123% 106
Qatar Qatar 6.35 +3.61% 143
Romania Romania 5.46 +1.34% 173
Russia Russia 5 +3.23% 188
Rwanda Rwanda 10.9 -1.59% 20
Saudi Arabia Saudi Arabia 8.86 +0.0133% 79
Sudan Sudan 10.6 -0.668% 33
Senegal Senegal 10.9 -0.57% 22
Singapore Singapore 5.62 -9.7% 169
Solomon Islands Solomon Islands 10.1 -0.478% 51
Sierra Leone Sierra Leone 10.8 -0.0591% 24
El Salvador El Salvador 8.11 -1.36% 97
San Marino San Marino 4.75 +2.11% 202
Somalia Somalia 10.7 -1.25% 29
Serbia Serbia 4.76 -1% 200
South Sudan South Sudan 12.4 +0.967% 1
São Tomé & Príncipe São Tomé & Príncipe 11.6 -0.0945% 7
Suriname Suriname 8.45 -0.861% 87
Slovakia Slovakia 4.83 +1.99% 198
Slovenia Slovenia 4.92 +4.53% 193
Sweden Sweden 5.71 +1.55% 163
Eswatini Eswatini 10.2 -0.328% 45
Sint Maarten Sint Maarten 5.87 +2.19% 158
Seychelles Seychelles 6.76 +1.03% 134
Syria Syria 11.6 -1.24% 6
Turks & Caicos Islands Turks & Caicos Islands 6.02 +0.378% 152
Chad Chad 10.8 -0.256% 25
Togo Togo 10.5 +1.27% 37
Thailand Thailand 5.68 -1.43% 166
Tajikistan Tajikistan 8.75 +1.77% 83
Turkmenistan Turkmenistan 6.88 +4.06% 126
Timor-Leste Timor-Leste 11.2 -2.03% 16
Tonga Tonga 10.5 -0.691% 38
Trinidad & Tobago Trinidad & Tobago 6.08 +0.193% 150
Tunisia Tunisia 6.88 +2.19% 127
Turkey Turkey 7.02 -0.356% 123
Tuvalu Tuvalu 8.51 +0.16% 85
Tanzania Tanzania 10.8 -0.634% 26
Uganda Uganda 11.5 -0.793% 8
Ukraine Ukraine 4.93 +5.38% 192
Uruguay Uruguay 6.57 -0.554% 139
United States United States 6.42 +0.178% 142
Uzbekistan Uzbekistan 7.51 +2.21% 108
St. Vincent & Grenadines St. Vincent & Grenadines 7.23 +2.21% 116
Venezuela Venezuela 9.26 +0.835% 70
British Virgin Islands British Virgin Islands 6.3 +3.26% 146
U.S. Virgin Islands U.S. Virgin Islands 5.68 +0.138% 167
Vietnam Vietnam 7.02 +1.66% 124
Vanuatu Vanuatu 9.51 +1.88% 65
Samoa Samoa 9.93 +3.82% 54
Kosovo Kosovo 8.14 -0.885% 96
Yemen Yemen 10.2 -0.625% 46
South Africa South Africa 8.1 +1.24% 98
Zambia Zambia 11.2 +0.453% 15
Zimbabwe Zimbabwe 10.8 +0.786% 23

                    
# 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.1519.FE.5Y'

# 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.1519.FE.5Y'

# 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))