Population ages 20-24, female (% of female population)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 5.64 +5.02% 170
Afghanistan Afghanistan 9.88 -0.474% 10
Angola Angola 8.46 +0.9% 71
Albania Albania 6.5 -4.37% 134
Andorra Andorra 5.68 -0.327% 167
United Arab Emirates United Arab Emirates 9.1 -5.45% 44
Argentina Argentina 7.36 -0.554% 108
Armenia Armenia 5.7 +1.24% 165
American Samoa American Samoa 7.76 +4.93% 96
Antigua & Barbuda Antigua & Barbuda 6.73 -1.73% 125
Australia Australia 5.82 -1.19% 161
Austria Austria 4.91 -1.47% 192
Azerbaijan Azerbaijan 5.85 -0.841% 160
Burundi Burundi 8.42 +3.17% 73
Belgium Belgium 5.48 -0.0666% 173
Benin Benin 8.9 +0.207% 58
Burkina Faso Burkina Faso 9.22 +0.966% 37
Bangladesh Bangladesh 9.76 -1.12% 11
Bulgaria Bulgaria 4.44 +0.913% 212
Bahrain Bahrain 6.62 -0.188% 130
Bahamas Bahamas 6.85 -1.49% 120
Bosnia & Herzegovina Bosnia & Herzegovina 4.86 -0.712% 196
Belarus Belarus 4.33 -0.281% 214
Belize Belize 9.53 -1.92% 21
Bermuda Bermuda 5.05 -3.05% 185
Bolivia Bolivia 8.96 -0.974% 55
Brazil Brazil 7.21 -2.41% 115
Barbados Barbados 6.27 -0.643% 144
Brunei Brunei 7.89 -1.39% 91
Bhutan Bhutan 9.53 +0.323% 20
Botswana Botswana 9.73 -1.95% 12
Central African Republic Central African Republic 10.2 +0.253% 3
Canada Canada 5.99 -1.02% 156
Switzerland Switzerland 4.88 -1.22% 194
Chile Chile 6.59 -3.02% 132
China China 5.26 -0.656% 179
Côte d’Ivoire Côte d’Ivoire 8.47 +1.25% 70
Cameroon Cameroon 9.01 +0.527% 49
Congo - Kinshasa Congo - Kinshasa 8.63 -0.164% 65
Congo - Brazzaville Congo - Brazzaville 8.49 +1.5% 69
Colombia Colombia 8.04 -2.22% 87
Comoros Comoros 8.98 -0.92% 53
Cape Verde Cape Verde 7.65 +1.38% 100
Costa Rica Costa Rica 7.12 -2.49% 116
Cuba Cuba 5.8 -2.07% 162
Curaçao Curaçao 6.06 -2.51% 152
Cayman Islands Cayman Islands 5.14 +1.36% 182
Cyprus Cyprus 5.41 -2.03% 175
Czechia Czechia 4.8 -0.0049% 198
Germany Germany 4.72 -1.63% 201
Djibouti Djibouti 9.67 +1.06% 15
Dominica Dominica 6.76 -1.69% 124
Denmark Denmark 6.04 -1.18% 154
Dominican Republic Dominican Republic 8.27 -0.87% 78
Algeria Algeria 6.21 +0.369% 147
Ecuador Ecuador 8.42 -1.32% 74
Egypt Egypt 8.28 +0.125% 77
Eritrea Eritrea 9.99 +1.59% 5
Spain Spain 4.93 +1.75% 191
Estonia Estonia 4.48 +1.27% 209
Ethiopia Ethiopia 9.93 +0.242% 8
Finland Finland 5.28 +1.4% 178
Fiji Fiji 8 +0.247% 90
France France 5.78 +0.951% 164
Faroe Islands Faroe Islands 6.78 +7.32% 123
Micronesia (Federated States of) Micronesia (Federated States of) 9.43 -1.77% 24
Gabon Gabon 8.21 +0.351% 81
United Kingdom United Kingdom 5.51 -0.918% 172
Georgia Georgia 5.03 -0.704% 186
Ghana Ghana 8.99 +0.586% 52
Gibraltar Gibraltar 6.21 +3.44% 146
Guinea Guinea 9.24 -0.643% 34
Gambia Gambia 9.23 -0.106% 36
Guinea-Bissau Guinea-Bissau 9.28 +0.279% 32
Equatorial Guinea Equatorial Guinea 7.83 +2.08% 92
Greece Greece 4.69 -0.0331% 202
Grenada Grenada 7.01 -2.44% 118
Greenland Greenland 6.31 -5.07% 140
Guatemala Guatemala 9.89 -0.629% 9
Guam Guam 6.67 -0.899% 129
Guyana Guyana 8.27 -4.55% 79
Hong Kong SAR China Hong Kong SAR China 3.38 -6.34% 216
Honduras Honduras 9.64 -1.17% 18
Croatia Croatia 4.77 -0.836% 199
Haiti Haiti 9.22 -0.781% 38
Hungary Hungary 4.88 +0.306% 195
Indonesia Indonesia 7.58 -0.909% 101
Isle of Man Isle of Man 4.93 +0.475% 190
India India 8.8 -0.609% 62
Ireland Ireland 6.3 +1.25% 141
Iran Iran 6.32 -0.606% 139
Iraq Iraq 9.09 -0.558% 46
Iceland Iceland 6.71 -0.609% 127
Israel Israel 7.32 +1.03% 111
Italy Italy 4.81 +1.4% 197
Jamaica Jamaica 8.02 -2.14% 89
Jordan Jordan 8.82 +0.166% 61
Japan Japan 4.68 +0.747% 203
Kazakhstan Kazakhstan 5.66 +0.997% 169
Kenya Kenya 9.96 +0.796% 7
Kyrgyzstan Kyrgyzstan 7.32 -1.13% 112
Cambodia Cambodia 7.79 +0.0403% 94
Kiribati Kiribati 7.8 -4.38% 93
St. Kitts & Nevis St. Kitts & Nevis 6.83 -4.55% 121
South Korea South Korea 5.23 -4.54% 181
Kuwait Kuwait 5.96 +1.28% 158
Laos Laos 9.13 -1.89% 42
Lebanon Lebanon 7.55 -0.0707% 103
Liberia Liberia 9.36 +1.2% 28
Libya Libya 8.14 +1.27% 84
St. Lucia St. Lucia 7.48 -3.41% 105
Liechtenstein Liechtenstein 5.24 -1.35% 180
Sri Lanka Sri Lanka 7.05 +0.656% 117
Lesotho Lesotho 9.25 +0.476% 33
Lithuania Lithuania 5.1 -0.82% 183
Luxembourg Luxembourg 5.41 -3.2% 174
Latvia Latvia 4.34 +2.59% 213
Macao SAR China Macao SAR China 5.68 -6.81% 166
Saint Martin (French part) Saint Martin (French part) 4.76 -7.44% 200
Morocco Morocco 7.56 -0.595% 102
Monaco Monaco 4.47 -0.112% 211
Moldova Moldova 4.64 +2.17% 205
Madagascar Madagascar 9.49 -0.992% 22
Maldives Maldives 6.4 -4.14% 136
Mexico Mexico 8.16 -0.483% 83
Marshall Islands Marshall Islands 8.17 +2.05% 82
North Macedonia North Macedonia 5.58 -1.13% 171
Mali Mali 9.01 +1.32% 50
Malta Malta 4.65 -2.45% 204
Myanmar (Burma) Myanmar (Burma) 8.08 -0.768% 85
Montenegro Montenegro 5.88 +0.141% 159
Mongolia Mongolia 5.98 -1.89% 157
Northern Mariana Islands Northern Mariana Islands 6.28 +4.48% 143
Mozambique Mozambique 9.11 -0.542% 43
Mauritania Mauritania 8.94 +0.465% 57
Mauritius Mauritius 7.25 -0.0388% 113
Malawi Malawi 9.66 +0.97% 16
Malaysia Malaysia 8.68 +0.14% 64
Namibia Namibia 8.35 -2.72% 76
New Caledonia New Caledonia 7.24 +0.912% 114
Niger Niger 9.14 +0.966% 41
Nigeria Nigeria 9.33 +1.9% 30
Nicaragua Nicaragua 8.7 -1.15% 63
Netherlands Netherlands 6.34 -0.585% 138
Norway Norway 6.04 +1.11% 153
Nepal Nepal 9.69 -1.72% 14
Nauru Nauru 7.49 -2.19% 104
New Zealand New Zealand 6.11 +0.0495% 149
Oman Oman 7.42 +0.538% 106
Pakistan Pakistan 9.23 -0.482% 35
Panama Panama 7.76 -0.548% 95
Peru Peru 8.08 -0.861% 86
Philippines Philippines 9.2 -0.823% 40
Palau Palau 5.8 +5.2% 163
Papua New Guinea Papua New Guinea 9 -0.547% 51
Poland Poland 4.47 -2.93% 210
Puerto Rico Puerto Rico 6.02 -0.773% 155
North Korea North Korea 6.58 -2.57% 133
Portugal Portugal 5.02 +0.0033% 187
Paraguay Paraguay 8.23 -2.66% 80
Palestinian Territories Palestinian Territories 8.94 -0.599% 56
French Polynesia French Polynesia 7.36 +0.387% 107
Qatar Qatar 5.66 +5.66% 168
Romania Romania 5 +0.59% 188
Russia Russia 4.58 +2.56% 207
Rwanda Rwanda 9.47 +2.88% 23
Saudi Arabia Saudi Arabia 8.39 -0.26% 75
Sudan Sudan 9.41 -0.944% 25
Senegal Senegal 9.73 -0.617% 13
Singapore Singapore 8.56 -3.53% 67
Solomon Islands Solomon Islands 9.32 -0.0456% 31
Sierra Leone Sierra Leone 9.66 +0.0389% 17
El Salvador El Salvador 8.83 -3.97% 60
San Marino San Marino 4.88 -1.13% 193
Somalia Somalia 9.09 -0.37% 45
Serbia Serbia 5 +0.316% 189
South Sudan South Sudan 9.98 +5.15% 6
São Tomé & Príncipe São Tomé & Príncipe 9.62 +2.73% 19
Suriname Suriname 8.61 -1.58% 66
Slovakia Slovakia 4.59 -1.94% 206
Slovenia Slovenia 4.55 +0.0555% 208
Sweden Sweden 5.38 +1.89% 176
Eswatini Eswatini 9.33 -0.705% 29
Sint Maarten Sint Maarten 5.35 +4.68% 177
Seychelles Seychelles 6.6 +1.65% 131
Syria Syria 11.5 +1.29% 1
Turks & Caicos Islands Turks & Caicos Islands 6.41 -2.15% 135
Chad Chad 9.06 +1.13% 48
Togo Togo 8.84 +0.31% 59
Thailand Thailand 6.16 -0.525% 148
Tajikistan Tajikistan 8.43 -3.85% 72
Turkmenistan Turkmenistan 6.71 -6.57% 126
Timor-Leste Timor-Leste 10.5 +1.51% 2
Tonga Tonga 9.09 +3.35% 47
Trinidad & Tobago Trinidad & Tobago 6.06 -0.777% 151
Tunisia Tunisia 6.28 -0.942% 142
Turkey Turkey 7.33 -3.88% 109
Tuvalu Tuvalu 7.73 -5% 98
Tanzania Tanzania 9.21 +0.311% 39
Uganda Uganda 10 -0.414% 4
Ukraine Ukraine 4.23 +5.48% 215
Uruguay Uruguay 6.79 -1.1% 122
United States United States 6.38 +0.627% 137
Uzbekistan Uzbekistan 6.69 -3.02% 128
St. Vincent & Grenadines St. Vincent & Grenadines 6.94 -2.04% 119
Venezuela Venezuela 7.75 +3.74% 97
British Virgin Islands British Virgin Islands 6.07 -0.488% 150
U.S. Virgin Islands U.S. Virgin Islands 5.06 +2.56% 184
Vietnam Vietnam 6.25 +1.23% 145
Vanuatu Vanuatu 8.03 -0.75% 88
Samoa Samoa 7.33 +0.85% 110
Kosovo Kosovo 8.53 -0.737% 68
Yemen Yemen 8.96 -0.618% 54
South Africa South Africa 7.66 -2.24% 99
Zambia Zambia 9.39 +0.241% 27
Zimbabwe Zimbabwe 9.4 +1.47% 26

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