Import value index (2015 = 100)

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Aruba Aruba 109 -0.821% 155
Afghanistan Afghanistan 91.4 +4.58% 166
Angola Angola 88.3 -8.21% 171
Albania Albania 237 +283% 10
Andorra Andorra 153 +7.12% 78
United Arab Emirates United Arab Emirates 180 +12% 46
Argentina Argentina 122 -9.6% 139
Armenia Armenia 381 +40.6% 3
American Samoa American Samoa 94.2 -1.36% 164
Antigua & Barbuda Antigua & Barbuda 210 +4.9% 21
Australia Australia 138 -7.08% 115
Austria Austria 144 -3.61% 99
Azerbaijan Azerbaijan 192 +16.7% 31
Burundi Burundi 135 -7.93% 122
Belgium Belgium 146 -10.8% 95
Benin Benin 203 +5.94% 22
Burkina Faso Burkina Faso 193 +7.6% 30
Bangladesh Bangladesh 161 -24.2% 68
Bulgaria Bulgaria 183 -7.66% 42
Bahrain Bahrain 123 -2.14% 137
Bahamas Bahamas 130 +13.8% 128
Bosnia & Herzegovina Bosnia & Herzegovina 171 +0.0584% 53
Belarus Belarus 145 +12.9% 98
Belize Belize 133 -2.36% 124
Bermuda Bermuda 118 -1.17% 146
Bolivia Bolivia 118 -11.9% 147
Brazil Brazil 140 -13.5% 109
Barbados Barbados 130 -1.52% 128
Brunei Brunei 237 -18.8% 11
Bhutan Bhutan 127 -13.4% 131
Botswana Botswana 89.9 -19.7% 169
Central African Republic Central African Republic 146 -2.48% 96
Canada Canada 133 -2.28% 124
Switzerland Switzerland 144 +1.98% 101
Chile Chile 137 -18.5% 119
China China 152 -5.52% 83
Côte d’Ivoire Côte d’Ivoire 182 +5.58% 43
Cameroon Cameroon 135 +3.05% 121
Congo - Kinshasa Congo - Kinshasa 144 +1.62% 100
Congo - Brazzaville Congo - Brazzaville 46.3 +30.1% 184
Colombia Colombia 116 -18.9% 150
Comoros Comoros 167 +1.33% 61
Cape Verde Cape Verde 160 +4.09% 69
Costa Rica Costa Rica 148 +5.95% 91
Cuba Cuba 85.1 +1.31% 173
Cayman Islands Cayman Islands 212 +6.53% 19
Cyprus Cyprus 198 +13.8% 25
Czechia Czechia 164 -2.27% 66
Germany Germany 141 -6.71% 108
Djibouti Djibouti 455 +9.91% 1
Dominica Dominica 144 +13.9% 101
Denmark Denmark 147 -1.8% 92
Dominican Republic Dominican Republic 171 -6.73% 55
Algeria Algeria 84.6 +12.5% 174
Ecuador Ecuador 144 -6.51% 102
Egypt Egypt 130 -13% 128
Eritrea Eritrea 48 -3.03% 183
Spain Spain 151 -4.86% 86
Estonia Estonia 158 -14.5% 70
Ethiopia Ethiopia 110 -5.1% 154
Finland Finland 137 -14.8% 117
Fiji Fiji 149 +4.11% 88
France France 138 -4.51% 116
Faroe Islands Faroe Islands 189 +2.22% 33
Micronesia (Federated States of) Micronesia (Federated States of) 194 +8.86% 28
Gabon Gabon 98.6 +18.4% 159
United Kingdom United Kingdom 126 -3.9% 134
Georgia Georgia 213 +14.2% 18
Ghana Ghana 104 -4.15% 156
Gibraltar Gibraltar 156 -9.76% 73
Guinea Guinea 214 -3.29% 15
Gambia Gambia 292 +76.8% 6
Guinea-Bissau Guinea-Bissau 187 +0.0534% 37
Equatorial Guinea Equatorial Guinea 78.9 -6.85% 177
Greece Greece 191 -9.9% 32
Grenada Grenada 166 +2.99% 62
Greenland Greenland 141 -11.3% 107
Guatemala Guatemala 172 -5.6% 51
Guam Guam 187 +4.53% 38
Guyana Guyana 449 +85.2% 2
Hong Kong SAR China Hong Kong SAR China 117 -2.09% 149
Honduras Honduras 156 -4.88% 75
Croatia Croatia 210 -3.04% 20
Haiti Haiti 91.3 -27.3% 167
Hungary Hungary 170 -5.57% 58
Indonesia Indonesia 158 -5.69% 70
India India 171 -6.67% 54
Ireland Ireland 196 +2.25% 27
Iran Iran 148 +14.4% 90
Iraq Iraq 139 +17.5% 112
Iceland Iceland 179 -1.33% 48
Israel Israel 147 -14.9% 93
Italy Italy 156 -7.87% 76
Jamaica Jamaica 162 +2.07% 67
Jordan Jordan 126 -5.99% 134
Japan Japan 121 -12.4% 141
Kazakhstan Kazakhstan 198 +18.9% 24
Kenya Kenya 118 -11.9% 145
Kyrgyzstan Kyrgyzstan 310 +25.2% 5
Cambodia Cambodia 184 -18.2% 41
Kiribati Kiribati 273 +52.5% 7
St. Kitts & Nevis St. Kitts & Nevis 112 +1.91% 152
South Korea South Korea 147 -12.2% 92
Kuwait Kuwait 121 +9.38% 140
Laos Laos 132 +4.1% 125
Lebanon Lebanon 95.8 -6.9% 162
Liberia Liberia 120 +24.4% 143
Libya Libya 94.3 -26.9% 163
St. Lucia St. Lucia 162 +7.34% 67
Sri Lanka Sri Lanka 88.8 -8.07% 170
Lesotho Lesotho 86.3 -7.1% 172
Lithuania Lithuania 172 -12.1% 50
Luxembourg Luxembourg 110 -5.34% 154
Latvia Latvia 186 -7.39% 39
Macao SAR China Macao SAR China 165 +1.16% 63
Morocco Morocco 180 -4.46% 45
Moldova Moldova 218 -5.88% 14
Madagascar Madagascar 170 -13.7% 56
Maldives Maldives 185 -0.539% 40
Mexico Mexico 153 -0.777% 79
Marshall Islands Marshall Islands 65.2 +3.16% 179
North Macedonia North Macedonia 187 -5.54% 36
Mali Mali 172 -8.97% 52
Malta Malta 139 -1.35% 111
Myanmar (Burma) Myanmar (Burma) 99.4 -4.88% 158
Mongolia Mongolia 244 +6.28% 8
Northern Mariana Islands Northern Mariana Islands 118 +1.21% 148
Mozambique Mozambique 123 -31.2% 138
Mauritania Mauritania 142 +1.94% 106
Mauritius Mauritius 131 -5.07% 127
Malawi Malawi 138 +97% 116
Malaysia Malaysia 151 -9.58% 85
Namibia Namibia 93.9 -7.03% 165
New Caledonia New Caledonia 120 -5.73% 142
Niger Niger 138 -6.51% 114
Nigeria Nigeria 110 -18.1% 153
Nicaragua Nicaragua 155 -2.95% 77
Netherlands Netherlands 165 -6.16% 64
Norway Norway 125 -9.75% 136
Nepal Nepal 181 -11.4% 44
Nauru Nauru 82.3 -10.6% 176
New Zealand New Zealand 137 -7.82% 119
Oman Oman 125 -5.71% 135
Pakistan Pakistan 114 -28.9% 151
Panama Panama 152 +17.2% 82
Peru Peru 138 -14.2% 113
Philippines Philippines 179 -8.25% 47
Palau Palau 150 +13.5% 87
Papua New Guinea Papua New Guinea 214 -7.03% 16
Poland Poland 188 -2.89% 35
North Korea North Korea 57.2 +90% 182
Portugal Portugal 170 -1.45% 58
Paraguay Paraguay 157 +1.62% 72
Palestinian Territories Palestinian Territories 164 -5.69% 65
French Polynesia French Polynesia 152 +4.53% 81
Qatar Qatar 97 -6.64% 160
Romania Romania 189 -0.422% 34
Russia Russia 157 +9.63% 71
Rwanda Rwanda 162 +10.9% 67
Saudi Arabia Saudi Arabia 119 +9.02% 144
Senegal Senegal 199 -6.96% 23
Singapore Singapore 143 -11% 104
Solomon Islands Solomon Islands 224 +41.2% 12
Sierra Leone Sierra Leone 126 -1.95% 132
El Salvador El Salvador 152 -8.54% 84
Somalia Somalia 194 -2.85% 29
Serbia Serbia 213 -5.08% 17
São Tomé & Príncipe São Tomé & Príncipe 145 -6.35% 97
Suriname Suriname 84.3 -5.7% 175
Slovakia Slovakia 156 +1.04% 74
Slovenia Slovenia 240 +2.56% 9
Sweden Sweden 139 -5.04% 110
Eswatini Eswatini 133 -5.46% 123
Seychelles Seychelles 149 +7.11% 89
Syria Syria 96.3 -7.85% 161
Turks & Caicos Islands Turks & Caicos Islands 100 -6.7% 157
Chad Chad 59.5 +5.12% 180
Togo Togo 142 +9.22% 105
Thailand Thailand 143 -3.7% 103
Tajikistan Tajikistan 170 +14.5% 57
Turkmenistan Turkmenistan 57.5 +12.7% 181
Timor-Leste Timor-Leste 178 -3.42% 49
Tonga Tonga 130 +1.41% 129
Trinidad & Tobago Trinidad & Tobago 90.5 +41.8% 168
Tunisia Tunisia 126 -4.4% 132
Turkey Turkey 169 -0.528% 59
Tanzania Tanzania 126 -3.75% 133
Uganda Uganda 221 +25% 13
Ukraine Ukraine 169 +14.9% 60
Uruguay Uruguay 132 -3.73% 126
United States United States 137 -5.91% 118
Uzbekistan Uzbekistan 313 +26% 4
St. Vincent & Grenadines St. Vincent & Grenadines 146 +4.57% 94
Venezuela Venezuela 32.8 +7.89% 185
British Virgin Islands British Virgin Islands 135 -10.2% 120
Vietnam Vietnam 197 -9.31% 26
Vanuatu Vanuatu 133 +40.5% 123
Samoa Samoa 126 +6.15% 132
Yemen Yemen 77.1 -4.1% 178
South Africa South Africa 125 -4.07% 136
Zambia Zambia 128 +12.6% 130
Zimbabwe Zimbabwe 153 +6.56% 80

                    
# 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 = 'TM.VAL.MRCH.XD.WD'

# 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 <- 'TM.VAL.MRCH.XD.WD'

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