Population ages 50-54, female (% of female population)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 7.42 -2.18% 24
Afghanistan Afghanistan 2.71 +0.917% 207
Angola Angola 2.96 -0.416% 199
Albania Albania 6.32 -2.26% 73
Andorra Andorra 8.81 +0.4% 1
United Arab Emirates United Arab Emirates 4.12 -1.58% 158
Argentina Argentina 5.55 +2.44% 111
Armenia Armenia 5.67 -0.92% 108
American Samoa American Samoa 6.13 +0.723% 84
Antigua & Barbuda Antigua & Barbuda 7.17 -2.91% 29
Australia Australia 6.39 -0.577% 71
Austria Austria 7 -3.22% 31
Azerbaijan Azerbaijan 5.93 -2.84% 94
Burundi Burundi 2.49 +2.26% 211
Belgium Belgium 6.48 -1.1% 66
Benin Benin 3.11 +0.55% 193
Burkina Faso Burkina Faso 2.9 +1.39% 201
Bangladesh Bangladesh 4.4 +1.67% 147
Bulgaria Bulgaria 7.2 +1.06% 27
Bahrain Bahrain 5.05 +1.73% 127
Bahamas Bahamas 6.91 -0.964% 35
Bosnia & Herzegovina Bosnia & Herzegovina 6.65 +2.35% 54
Belarus Belarus 6.74 +0.673% 47
Belize Belize 4.88 +1.86% 132
Bermuda Bermuda 7.07 -1.14% 30
Bolivia Bolivia 4.4 +1.41% 148
Brazil Brazil 6.27 +1.34% 76
Barbados Barbados 6.98 +0.479% 32
Brunei Brunei 6.56 +1.69% 60
Bhutan Bhutan 4.58 +1.05% 141
Botswana Botswana 3.7 +0.524% 166
Central African Republic Central African Republic 2.3 -5.3% 216
Canada Canada 6.12 -1.27% 85
Switzerland Switzerland 6.94 -2.21% 33
Chile Chile 6.44 -0.00133% 69
China China 8.54 -2.28% 6
Côte d’Ivoire Côte d’Ivoire 2.85 +2.27% 203
Cameroon Cameroon 3.01 +1.66% 196
Congo - Kinshasa Congo - Kinshasa 2.71 -1.11% 205
Congo - Brazzaville Congo - Brazzaville 3.63 +0.724% 169
Colombia Colombia 5.82 -0.476% 102
Comoros Comoros 3.51 +1.38% 173
Cape Verde Cape Verde 4.36 -0.822% 149
Costa Rica Costa Rica 6.01 +0.0543% 91
Cuba Cuba 8.7 -2.03% 3
Curaçao Curaçao 6.87 -1.26% 37
Cayman Islands Cayman Islands 8.28 -0.794% 9
Cyprus Cyprus 6.7 +0.381% 50
Czechia Czechia 7.18 +6.53% 28
Germany Germany 6.46 -5.43% 67
Djibouti Djibouti 4.89 +2.25% 131
Dominica Dominica 6.83 -2.45% 41
Denmark Denmark 6.56 +0.152% 59
Dominican Republic Dominican Republic 5.2 +1.04% 123
Algeria Algeria 5.31 +1.41% 118
Ecuador Ecuador 5.22 +1.49% 122
Egypt Egypt 4.45 +0.874% 145
Eritrea Eritrea 3.49 -0.334% 175
Spain Spain 7.86 +0.878% 13
Estonia Estonia 6.51 +0.787% 62
Ethiopia Ethiopia 3.11 -0.38% 191
Finland Finland 5.53 -2.14% 112
Fiji Fiji 4.8 -1.63% 133
France France 6.51 -0.328% 63
Faroe Islands Faroe Islands 5.78 -2.13% 105
Micronesia (Federated States of) Micronesia (Federated States of) 4.31 -0.527% 151
Gabon Gabon 3.69 +1.99% 167
United Kingdom United Kingdom 6.6 -2.75% 56
Georgia Georgia 6.12 +0.377% 86
Ghana Ghana 3.84 +0.822% 163
Gibraltar Gibraltar 6.34 +0.027% 72
Guinea Guinea 2.99 -0.102% 198
Gambia Gambia 3.09 -1.78% 194
Guinea-Bissau Guinea-Bissau 3.38 +3.39% 180
Equatorial Guinea Equatorial Guinea 3.46 +0.329% 177
Greece Greece 7.63 -0.258% 17
Grenada Grenada 5.03 -0.507% 129
Greenland Greenland 5.05 -10.9% 128
Guatemala Guatemala 3.68 +2.04% 168
Guam Guam 6.08 -1.57% 89
Guyana Guyana 5.23 +0.0754% 121
Hong Kong SAR China Hong Kong SAR China 8.41 +1.1% 8
Honduras Honduras 4.1 +2.55% 159
Croatia Croatia 6.59 -0.019% 57
Haiti Haiti 4.14 +1.87% 156
Hungary Hungary 7.22 +2.34% 26
Indonesia Indonesia 6.13 +0.674% 82
Isle of Man Isle of Man 7.54 -1.53% 19
India India 5.25 +1.5% 119
Ireland Ireland 6.84 +1.98% 39
Iran Iran 5.79 +1.32% 104
Iraq Iraq 3.93 +1.28% 161
Iceland Iceland 5.84 +0.404% 100
Israel Israel 5.2 +1.63% 124
Italy Italy 7.91 -0.521% 11
Jamaica Jamaica 6.09 +1.13% 88
Jordan Jordan 4.54 +1.37% 143
Japan Japan 7.71 +2.86% 15
Kazakhstan Kazakhstan 5.42 +0.143% 115
Kenya Kenya 3.25 +1.12% 188
Kyrgyzstan Kyrgyzstan 4.7 -0.896% 137
Cambodia Cambodia 4.33 -3.33% 150
Kiribati Kiribati 3.99 -2.78% 160
St. Kitts & Nevis St. Kitts & Nevis 6.54 +1.04% 61
South Korea South Korea 8.45 -1.35% 7
Kuwait Kuwait 6.27 +3.11% 75
Laos Laos 4.23 +1.18% 154
Lebanon Lebanon 5.7 -1.74% 107
Liberia Liberia 3.28 +0.59% 186
Libya Libya 6.13 +2.26% 83
St. Lucia St. Lucia 6.77 -0.257% 43
Liechtenstein Liechtenstein 7.47 -3.82% 22
Sri Lanka Sri Lanka 5.82 -0.638% 103
Lesotho Lesotho 2.71 +0.377% 206
Lithuania Lithuania 6.69 -1.92% 52
Luxembourg Luxembourg 6.89 -0.886% 36
Latvia Latvia 6.75 +0.332% 46
Macao SAR China Macao SAR China 7.86 +2.24% 12
Saint Martin (French part) Saint Martin (French part) 7.24 +1.65% 25
Morocco Morocco 5.47 +1.47% 113
Monaco Monaco 5.18 -3.18% 125
Moldova Moldova 6.13 +1.44% 81
Madagascar Madagascar 3.29 +1.56% 184
Maldives Maldives 5.08 +2.32% 126
Mexico Mexico 5.86 +1.29% 98
Marshall Islands Marshall Islands 4.91 +3.75% 130
North Macedonia North Macedonia 6.77 +0.387% 44
Mali Mali 2.47 +2.35% 212
Malta Malta 5.93 +2.62% 95
Myanmar (Burma) Myanmar (Burma) 5.88 +0.753% 97
Montenegro Montenegro 6.49 +1.15% 65
Mongolia Mongolia 5.4 +0.651% 116
Northern Mariana Islands Northern Mariana Islands 8.74 -1.77% 2
Mozambique Mozambique 2.7 +2.12% 208
Mauritania Mauritania 3.11 +0.737% 192
Mauritius Mauritius 6.25 +0.112% 78
Malawi Malawi 2.43 +0.0992% 215
Malaysia Malaysia 5.24 +1.31% 120
Namibia Namibia 3.56 +1.66% 171
New Caledonia New Caledonia 6.91 +0.491% 34
Niger Niger 2.46 -0.0665% 213
Nigeria Nigeria 3.07 +1.68% 195
Nicaragua Nicaragua 4.65 +2.26% 139
Netherlands Netherlands 6.73 -3.77% 48
Norway Norway 6.72 -1.39% 49
Nepal Nepal 4.57 +2.45% 142
Nauru Nauru 3.34 +5.85% 182
New Zealand New Zealand 6.49 -1.36% 64
Oman Oman 3.38 +4.01% 179
Pakistan Pakistan 3.47 +0.703% 176
Panama Panama 5.74 +0.34% 106
Peru Peru 5.38 +1.67% 117
Philippines Philippines 4.7 +0.385% 136
Palau Palau 7.47 +0.00988% 23
Papua New Guinea Papua New Guinea 4.27 +2.13% 153
Poland Poland 6.42 +3.94% 70
Puerto Rico Puerto Rico 6.66 -1.32% 53
North Korea North Korea 7.95 -3.32% 10
Portugal Portugal 7.48 +1.44% 21
Paraguay Paraguay 4.51 -0.166% 144
Palestinian Territories Palestinian Territories 3.29 +1.35% 185
French Polynesia French Polynesia 6.83 +0.537% 40
Qatar Qatar 4.2 +1.28% 155
Romania Romania 7.51 -4.26% 20
Russia Russia 6.44 +2.75% 68
Rwanda Rwanda 3.13 +0.629% 190
Saudi Arabia Saudi Arabia 3.81 +1.69% 165
Sudan Sudan 3.27 +0.256% 187
Senegal Senegal 3.2 +1.34% 189
Singapore Singapore 6.22 +1.57% 80
Solomon Islands Solomon Islands 3.83 +2.21% 164
Sierra Leone Sierra Leone 3.31 +1.12% 183
El Salvador El Salvador 5.46 +1.11% 114
San Marino San Marino 8.69 -0.503% 4
Somalia Somalia 2.52 -0.162% 210
Serbia Serbia 6.69 +0.727% 51
South Sudan South Sudan 4.12 +2.77% 157
São Tomé & Príncipe São Tomé & Príncipe 3.34 +1.85% 181
Suriname Suriname 5.55 -0.00762% 110
Slovakia Slovakia 6.84 +4.32% 38
Slovenia Slovenia 6.77 +0.628% 42
Sweden Sweden 6.26 +0.28% 77
Eswatini Eswatini 3.39 -1.81% 178
Sint Maarten Sint Maarten 8.65 -3.04% 5
Seychelles Seychelles 6.3 -1.04% 74
Syria Syria 4.31 -0.242% 152
Turks & Caicos Islands Turks & Caicos Islands 7.59 +2.12% 18
Chad Chad 2.7 +0.942% 209
Togo Togo 3.5 +1.42% 174
Thailand Thailand 7.7 -1.12% 16
Tajikistan Tajikistan 3.88 -0.515% 162
Turkmenistan Turkmenistan 5.6 +0.612% 109
Timor-Leste Timor-Leste 3.62 +1.42% 170
Tonga Tonga 4.66 -1.36% 138
Trinidad & Tobago Trinidad & Tobago 6.25 +1.6% 79
Tunisia Tunisia 5.96 +1.36% 92
Turkey Turkey 5.83 +3.15% 101
Tuvalu Tuvalu 4.63 -3.53% 140
Tanzania Tanzania 2.87 +2.66% 202
Uganda Uganda 2.46 +0.472% 214
Ukraine Ukraine 6.76 -1.41% 45
Uruguay Uruguay 5.9 +1.83% 96
United States United States 5.96 -1.55% 93
Uzbekistan Uzbekistan 4.75 +0.557% 135
St. Vincent & Grenadines St. Vincent & Grenadines 6.09 +1.36% 87
Venezuela Venezuela 5.84 +0.273% 99
British Virgin Islands British Virgin Islands 7.79 +2.28% 14
U.S. Virgin Islands U.S. Virgin Islands 6.62 -2.79% 55
Vietnam Vietnam 6.05 -0.477% 90
Vanuatu Vanuatu 3.54 +1.34% 172
Samoa Samoa 4.44 -0.0985% 146
Kosovo Kosovo 6.56 +1.96% 58
Yemen Yemen 2.85 +1.55% 204
South Africa South Africa 4.76 +0.231% 134
Zambia Zambia 2.91 +3.03% 200
Zimbabwe Zimbabwe 3 +5.6% 197

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