Population ages 25-29, female (% of female population)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 4.93 -2.7% 198
Afghanistan Afghanistan 8.41 +0.831% 41
Angola Angola 7.11 -0.609% 122
Albania Albania 7.84 -3.59% 69
Andorra Andorra 5.86 +2.78% 169
United Arab Emirates United Arab Emirates 11.9 +4.29% 1
Argentina Argentina 7.44 -0.755% 104
Armenia Armenia 6.18 -2.4% 161
American Samoa American Samoa 5.28 -7.54% 186
Antigua & Barbuda Antigua & Barbuda 7.32 -2.33% 112
Australia Australia 6.64 -2.36% 140
Austria Austria 5.84 -3.6% 171
Azerbaijan Azerbaijan 7.17 -7.04% 118
Burundi Burundi 6.62 -0.0403% 141
Belgium Belgium 5.87 -1.55% 167
Benin Benin 7.73 -0.207% 76
Burkina Faso Burkina Faso 7.71 +0.763% 78
Bangladesh Bangladesh 9.44 -0.222% 4
Bulgaria Bulgaria 4.31 -2.1% 213
Bahrain Bahrain 8.95 -3.68% 13
Bahamas Bahamas 7.8 -2.66% 71
Bosnia & Herzegovina Bosnia & Herzegovina 4.89 +5.46% 201
Belarus Belarus 4.6 -3.92% 211
Belize Belize 9.3 -0.0872% 8
Bermuda Bermuda 5.2 +2.15% 189
Bolivia Bolivia 8.61 -0.399% 23
Brazil Brazil 7.55 -0.391% 100
Barbados Barbados 6.1 +0.274% 164
Brunei Brunei 8.24 -2.14% 53
Bhutan Bhutan 9.16 -1.77% 11
Botswana Botswana 9.76 -2.73% 2
Central African Republic Central African Republic 7.75 +2.46% 75
Canada Canada 6.67 +0.319% 138
Switzerland Switzerland 5.65 -3.31% 176
Chile Chile 7.68 -2.11% 80
China China 5.64 -2.9% 178
Côte d’Ivoire Côte d’Ivoire 7.25 -1.69% 114
Cameroon Cameroon 7.73 -0.4% 77
Congo - Kinshasa Congo - Kinshasa 7.35 -0.26% 109
Congo - Brazzaville Congo - Brazzaville 7.14 -0.0601% 120
Colombia Colombia 8.55 -1.12% 26
Comoros Comoros 7.65 +1.7% 83
Cape Verde Cape Verde 8.02 -4.22% 62
Costa Rica Costa Rica 7.58 -1.14% 94
Cuba Cuba 5.85 +0.395% 170
Curaçao Curaçao 7.32 -3% 111
Cayman Islands Cayman Islands 6.62 -6.53% 144
Cyprus Cyprus 6.64 -3.99% 139
Czechia Czechia 4.91 -5.32% 199
Germany Germany 5.36 -1.47% 183
Djibouti Djibouti 8.46 +0.0186% 36
Dominica Dominica 7.3 -4.83% 113
Denmark Denmark 6.62 -1.21% 143
Dominican Republic Dominican Republic 7.91 -1.47% 68
Algeria Algeria 6.45 -4.99% 151
Ecuador Ecuador 8.4 -0.575% 42
Egypt Egypt 7.59 +0.385% 92
Eritrea Eritrea 8.26 +2.73% 50
Spain Spain 4.96 -1.34% 196
Estonia Estonia 4.61 -3.29% 210
Ethiopia Ethiopia 8.57 +0.216% 24
Finland Finland 5.65 -2.51% 177
Fiji Fiji 7.84 -1.08% 70
France France 5.55 +1.49% 180
Faroe Islands Faroe Islands 5.19 +1.02% 191
Micronesia (Federated States of) Micronesia (Federated States of) 8.87 +0.872% 16
Gabon Gabon 7.5 -1.9% 101
United Kingdom United Kingdom 6.17 -1.29% 162
Georgia Georgia 5.44 -2.43% 181
Ghana Ghana 7.75 -0.319% 74
Gibraltar Gibraltar 6.28 +0.879% 158
Guinea Guinea 8.3 -0.073% 49
Gambia Gambia 8.2 -0.419% 54
Guinea-Bissau Guinea-Bissau 8.09 +0.371% 58
Equatorial Guinea Equatorial Guinea 7.08 -2.51% 123
Greece Greece 4.62 -1.35% 209
Grenada Grenada 7.6 -1.52% 91
Greenland Greenland 7.7 -5.13% 79
Guatemala Guatemala 9.2 +0.23% 10
Guam Guam 6.56 -1.63% 146
Guyana Guyana 8.91 -1.03% 14
Hong Kong SAR China Hong Kong SAR China 5.05 -7.93% 194
Honduras Honduras 9.02 -0.0785% 12
Croatia Croatia 5.23 +0.957% 188
Haiti Haiti 8.64 -0.473% 22
Hungary Hungary 5.41 -3.43% 182
Indonesia Indonesia 7.63 -0.368% 87
Isle of Man Isle of Man 5.13 +0.0866% 192
India India 8.43 -0.316% 39
Ireland Ireland 5.89 +1.67% 165
Iran Iran 6.73 -4.04% 136
Iraq Iraq 8.25 +0.075% 51
Iceland Iceland 7.62 -2.32% 88
Israel Israel 6.7 +0.279% 137
Italy Italy 4.87 -0.0926% 203
Jamaica Jamaica 8.89 -2.59% 15
Jordan Jordan 8.45 -2.67% 38
Japan Japan 4.72 +0.778% 206
Kazakhstan Kazakhstan 5.89 -5.59% 166
Kenya Kenya 8.45 +0.978% 37
Kyrgyzstan Kyrgyzstan 7.56 -2.76% 98
Cambodia Cambodia 7.49 -3.09% 103
Kiribati Kiribati 8.5 -1.51% 33
St. Kitts & Nevis St. Kitts & Nevis 7.6 -0.0174% 89
South Korea South Korea 6.42 -1.32% 154
Kuwait Kuwait 7.66 -3.17% 82
Laos Laos 8.85 -0.464% 17
Lebanon Lebanon 7.04 -0.335% 125
Liberia Liberia 7.6 +1.72% 90
Libya Libya 7.4 +0.415% 107
St. Lucia St. Lucia 8.51 -2.04% 32
Liechtenstein Liechtenstein 5.83 +0.778% 172
Sri Lanka Sri Lanka 6.83 -1.33% 133
Lesotho Lesotho 8.57 -1.52% 25
Lithuania Lithuania 5.87 +0.597% 168
Luxembourg Luxembourg 7.01 -4.01% 129
Latvia Latvia 4.08 -3.65% 215
Macao SAR China Macao SAR China 7.07 -4.25% 124
Saint Martin (French part) Saint Martin (French part) 3.81 -19% 216
Morocco Morocco 7.41 -1.5% 105
Monaco Monaco 4.64 +2.99% 207
Moldova Moldova 4.9 -7.62% 200
Madagascar Madagascar 8.42 +1.18% 40
Maldives Maldives 8.38 -7.48% 44
Mexico Mexico 7.91 -1.07% 66
Marshall Islands Marshall Islands 5.07 -5.37% 193
North Macedonia North Macedonia 5.79 -2.4% 173
Mali Mali 7.01 +0.663% 128
Malta Malta 6.4 -6.25% 155
Myanmar (Burma) Myanmar (Burma) 7.91 -0.786% 65
Montenegro Montenegro 5.78 -0.598% 174
Mongolia Mongolia 6.55 -3.16% 147
Northern Mariana Islands Northern Mariana Islands 4.17 -12% 214
Mozambique Mozambique 7.76 +0.578% 73
Mauritania Mauritania 7.64 +0.0398% 86
Mauritius Mauritius 7.4 -2.02% 106
Malawi Malawi 8.11 +0.502% 57
Malaysia Malaysia 8.52 -0.014% 30
Namibia Namibia 8.34 -1.27% 46
New Caledonia New Caledonia 6.49 -1.46% 150
Niger Niger 7.19 +1.6% 117
Nigeria Nigeria 7.58 +0.636% 95
Nicaragua Nicaragua 8.53 -1.15% 28
Netherlands Netherlands 6.62 +1.02% 142
Norway Norway 6.54 -0.617% 148
Nepal Nepal 9.27 -0.344% 9
Nauru Nauru 7.04 -2.75% 126
New Zealand New Zealand 6.44 -2.29% 152
Oman Oman 8.71 -1.84% 20
Pakistan Pakistan 7.99 +0.198% 63
Panama Panama 7.59 -0.359% 93
Peru Peru 8.14 -1.24% 56
Philippines Philippines 8.77 +0.417% 18
Palau Palau 5.32 -5.87% 185
Papua New Guinea Papua New Guinea 8.36 -0.691% 45
Poland Poland 5.34 -4.33% 184
Puerto Rico Puerto Rico 6.13 +2.9% 163
North Korea North Korea 7.17 -1.19% 119
Portugal Portugal 4.96 +0.923% 197
Paraguay Paraguay 8.53 -1.42% 29
Palestinian Territories Palestinian Territories 8.25 -1.93% 52
French Polynesia French Polynesia 6.25 -1.65% 159
Qatar Qatar 8.65 -5.85% 21
Romania Romania 4.99 -0.0564% 195
Russia Russia 4.63 -3.5% 208
Rwanda Rwanda 7.58 +0.283% 96
Saudi Arabia Saudi Arabia 9.32 -2.98% 6
Sudan Sudan 8.19 -0.431% 55
Senegal Senegal 8.54 +0.855% 27
Singapore Singapore 9.58 -0.986% 3
Solomon Islands Solomon Islands 8.04 +2.36% 60
Sierra Leone Sierra Leone 8.32 +0.952% 47
El Salvador El Salvador 9.32 +0.417% 7
San Marino San Marino 4.75 +0.469% 205
Somalia Somalia 7.58 +0.549% 97
Serbia Serbia 5.28 -2.22% 187
South Sudan South Sudan 6.44 +4.9% 153
São Tomé & Príncipe São Tomé & Príncipe 7.25 +2.06% 116
Suriname Suriname 7.98 +2.14% 64
Slovakia Slovakia 5.19 -4.58% 190
Slovenia Slovenia 4.88 -1.74% 202
Sweden Sweden 5.75 -4.8% 175
Eswatini Eswatini 8.39 -1.06% 43
Sint Maarten Sint Maarten 5.57 -1.49% 179
Seychelles Seychelles 7.25 -3.31% 115
Syria Syria 9.34 +8.83% 5
Turks & Caicos Islands Turks & Caicos Islands 7.35 -1.26% 108
Chad Chad 7.65 +2.98% 85
Togo Togo 7.56 -0.0992% 99
Thailand Thailand 6.77 -1.72% 134
Tajikistan Tajikistan 8.31 -0.158% 48
Turkmenistan Turkmenistan 8.47 -3.46% 35
Timor-Leste Timor-Leste 8.72 +1.89% 19
Tonga Tonga 6.84 -1.08% 132
Trinidad & Tobago Trinidad & Tobago 6.37 -2.53% 156
Tunisia Tunisia 6.75 -4.26% 135
Turkey Turkey 7.68 +0.287% 81
Tuvalu Tuvalu 7.5 -4.18% 102
Tanzania Tanzania 7.79 +0.65% 72
Uganda Uganda 8.48 +0.404% 34
Ukraine Ukraine 4.82 -0.505% 204
Uruguay Uruguay 7.12 -0.321% 121
United States United States 6.35 -1.12% 157
Uzbekistan Uzbekistan 7.65 -5.1% 84
St. Vincent & Grenadines St. Vincent & Grenadines 6.93 -2.33% 131
Venezuela Venezuela 6.21 +0.59% 160
British Virgin Islands British Virgin Islands 7.02 -3.22% 127
U.S. Virgin Islands U.S. Virgin Islands 4.58 -3.83% 212
Vietnam Vietnam 6.5 -5.79% 149
Vanuatu Vanuatu 7.91 -3.41% 67
Samoa Samoa 6.61 -2.9% 145
Kosovo Kosovo 7.35 -1.83% 110
Yemen Yemen 8.07 -2.04% 59
South Africa South Africa 8.52 -2.57% 31
Zambia Zambia 8.04 +0.367% 61
Zimbabwe Zimbabwe 6.96 +3.12% 130

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