Industry (including construction), value added (constant 2015 US$)

Source: worldbank.org, 03.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Angola Angola 28,680,870,978 +4.96% 55
Albania Albania 3,819,778,023 -0.155% 114
Andorra Andorra 428,650,854 +6.04% 143
Argentina Argentina 125,297,376,802 -7.24% 27
Armenia Armenia 4,047,453,822 +6.2% 113
Australia Australia 339,237,086,813 +0.545% 13
Austria Austria 102,745,879,392 -5.51% 30
Azerbaijan Azerbaijan 21,903,623,950 +2.08% 64
Burundi Burundi 491,854,034 -0.182% 142
Belgium Belgium 90,606,733,957 -0.58% 33
Benin Benin 3,280,381,641 +9.66% 115
Burkina Faso Burkina Faso 4,117,437,026 -5.42% 112
Bangladesh Bangladesh 109,090,708,115 +3.51% 28
Bulgaria Bulgaria 13,115,439,394 +1.87% 82
Bahamas Bahamas 1,250,721,965 +12.5% 134
Bosnia & Herzegovina Bosnia & Herzegovina 4,272,847,566 -2.43% 109
Belarus Belarus 21,662,999,417 +5.96% 65
Belize Belize 390,572,504 +4.77% 145
Brazil Brazil 360,115,126,813 +3.28% 11
Brunei Brunei 7,895,804,289 +5.71% 88
Botswana Botswana 5,160,423,564 -13.5% 99
Central African Republic Central African Republic 550,881,103 +9.75% 140
Canada Canada 412,574,769,620 -0.0418% 9
Switzerland Switzerland 217,573,172,344 +1.65% 16
Chile Chile 70,192,421,152 +3.46% 41
China China 6,971,285,866,873 +5.32% 1
Côte d’Ivoire Côte d’Ivoire 19,101,604,578 +2.8% 68
Cameroon Cameroon 10,662,684,876 +1.92% 85
Congo - Kinshasa Congo - Kinshasa 32,746,669,666 +10.1% 53
Congo - Brazzaville Congo - Brazzaville 4,741,187,585 +0.272% 102
Colombia Colombia 80,056,702,779 -1.34% 37
Comoros Comoros 115,349,741 +3.75% 154
Cape Verde Cape Verde 239,141,885 +4.37% 149
Costa Rica Costa Rica 15,941,841,207 +4.1% 74
Cyprus Cyprus 3,023,034,922 +4.56% 119
Czechia Czechia 65,307,616,954 -0.992% 43
Germany Germany 872,003,394,515 -2.96% 3
Djibouti Djibouti 560,309,214 +9.7% 139
Dominica Dominica 82,637,475 +8.83% 156
Denmark Denmark 95,789,297,144 +12% 32
Dominican Republic Dominican Republic 27,353,462,012 +3% 57
Ecuador Ecuador 26,671,092,004 -3.66% 58
Egypt Egypt 145,491,365,250 -1.92% 23
Spain Spain 265,484,003,672 +2.56% 15
Estonia Estonia 5,410,956,501 -6.96% 97
Ethiopia Ethiopia 28,770,178,318 +9.24% 54
Finland Finland 53,460,966,034 -2.2% 46
Fiji Fiji 768,961,541 +7.32% 136
France France 427,813,564,289 +0.667% 8
Gabon Gabon 7,604,092,532 +2.76% 89
United Kingdom United Kingdom 542,471,938,499 -0.53% 4
Georgia Georgia 4,517,513,819 +5.41% 104
Ghana Ghana 22,403,972,397 +7.11% 62
Guinea Guinea 5,284,429,757 +7.06% 98
Gambia Gambia 414,843,643 +2.44% 144
Guinea-Bissau Guinea-Bissau 284,933,568 +7.96% 147
Equatorial Guinea Equatorial Guinea 4,363,500,365 +0.758% 107
Greece Greece 37,025,190,821 +6.14% 49
Grenada Grenada 192,820,947 +2.9% 152
Guatemala Guatemala 18,251,247,104 +1.97% 70
Guyana Guyana 21,308,697,997 +53.3% 67
Hong Kong SAR China Hong Kong SAR China 22,366,576,465 +3.4% 63
Honduras Honduras 6,617,762,982 +0.783% 94
Croatia Croatia 13,735,993,201 +2.14% 81
Haiti Haiti 3,078,851,909 -4.71% 118
Hungary Hungary 34,661,103,763 -2.52% 51
Indonesia Indonesia 466,350,918,580 +5.17% 6
India India 912,794,943,286 +5.58% 2
Ireland Ireland 172,376,711,952 -4.92% 17
Iran Iran 170,545,084,068 +2.83% 18
Iraq Iraq 81,115,299,782 -2.65% 36
Iceland Iceland 4,523,316,796 -2.28% 103
Israel Israel 76,678,032,502 -4.24% 38
Italy Italy 430,537,590,304 +0.201% 7
Jamaica Jamaica 2,880,585,128 -1.51% 120
Jordan Jordan 12,020,802,149 +3.73% 83
Kazakhstan Kazakhstan 89,057,452,749 +6.6% 34
Kenya Kenya 17,740,345,773 +0.2% 71
Kyrgyzstan Kyrgyzstan 2,762,310,228 +9.45% 123
Cambodia Cambodia 16,805,011,955 +9.54% 72
St. Kitts & Nevis St. Kitts & Nevis 199,274,170 -2.74% 151
Kuwait Kuwait 60,360,179,219 -5.21% 44
Laos Laos 7,007,034,324 +3.9% 91
Liberia Liberia 804,071,258 +6.08% 135
Libya Libya 25,382,164,261 -5.82% 60
St. Lucia St. Lucia 271,007,687 +5.62% 148
Sri Lanka Sri Lanka 24,518,629,893 +11% 61
Lesotho Lesotho 686,482,776 +2.56% 138
Lithuania Lithuania 14,925,173,785 +3.22% 77
Luxembourg Luxembourg 6,504,673,053 -1.1% 95
Latvia Latvia 5,626,239,461 -3.99% 96
Morocco Morocco 33,824,101,176 +4.99% 52
Moldova Moldova 1,694,477,045 +3.27% 131
Madagascar Madagascar 2,857,645,929 +3.65% 121
Maldives Maldives 500,549,312 -2.68% 141
Mexico Mexico 391,317,302,117 +0.233% 10
North Macedonia North Macedonia 2,417,859,041 +1.85% 125
Mali Mali 4,442,504,532 -2.43% 105
Malta Malta 2,137,310,461 +5.61% 129
Myanmar (Burma) Myanmar (Burma) 27,397,759,815 -0.186% 56
Montenegro Montenegro 699,262,771 -1.69% 137
Mongolia Mongolia 4,351,774,073 +6.52% 108
Mozambique Mozambique 4,222,952,625 +2.88% 111
Mauritania Mauritania 1,516,774,004 +2.82% 132
Mauritius Mauritius 2,632,369,264 +4.65% 124
Malawi Malawi 2,171,945,472 +2.1% 127
Malaysia Malaysia 151,027,097,980 +4.9% 21
Namibia Namibia 3,239,175,690 +1.04% 116
Niger Niger 3,235,784,539 +12.1% 117
Nigeria Nigeria 88,960,923,451 +2.45% 35
Nicaragua Nicaragua 4,269,340,731 +3.56% 110
Netherlands Netherlands 162,072,858,262 -1.47% 19
Norway Norway 136,339,510,547 +2.41% 24
Nepal Nepal 4,916,634,472 +0.113% 101
Oman Oman 46,450,528,942 +0.198% 47
Pakistan Pakistan 73,710,983,816 -1.65% 39
Panama Panama 18,536,986,310 -2.57% 69
Peru Peru 66,323,741,954 +3.06% 42
Philippines Philippines 134,581,659,823 +5.64% 25
Papua New Guinea Papua New Guinea 8,429,271,715 +3.59% 87
Portugal Portugal 45,153,570,212 +1.16% 48
Paraguay Paraguay 15,503,256,730 +2.24% 75
Palestinian Territories Palestinian Territories 1,497,800,000 -32.2% 133
Qatar Qatar 95,911,104,942 +1.58% 31
Romania Romania 54,798,858,051 -0.881% 45
Russia Russia 491,813,942,202 +4.08% 5
Rwanda Rwanda 2,822,055,725 +9.96% 122
Saudi Arabia Saudi Arabia 350,426,284,509 -1.25% 12
Sudan Sudan 4,962,275,219 -13.1% 100
Senegal Senegal 7,108,045,871 +20% 90
Singapore Singapore 104,109,868,606 +4.19% 29
Sierra Leone Sierra Leone 1,869,525,261 +4.7% 130
El Salvador El Salvador 6,691,372,653 +0.352% 93
Serbia Serbia 14,143,216,292 +2.93% 79
São Tomé & Príncipe São Tomé & Príncipe 30,636,080 +3.23% 157
Slovakia Slovakia 26,282,333,155 +0.341% 59
Slovenia Slovenia 16,504,452,213 +1.8% 73
Sweden Sweden 129,366,816,705 +0.267% 26
Seychelles Seychelles 233,756,060 -6.4% 150
Turks & Caicos Islands Turks & Caicos Islands 301,280,005 +9.05% 146
Chad Chad 4,438,458,669 +5.13% 106
Togo Togo 2,144,249,476 +4.2% 128
Thailand Thailand 152,496,405,044 +0.894% 20
Tunisia Tunisia 10,740,868,434 -2.48% 84
Turkey Turkey 326,398,541,152 +2.17% 14
Tanzania Tanzania 21,334,421,289 +5.23% 66
Uganda Uganda 13,738,379,002 +4.87% 80
Ukraine Ukraine 14,244,051,330 +4.13% 78
Uruguay Uruguay 15,264,048,278 +4.37% 76
Uzbekistan Uzbekistan 35,486,626,593 +7.24% 50
St. Vincent & Grenadines St. Vincent & Grenadines 149,244,826 +7.31% 153
Vietnam Vietnam 147,729,005,830 +8.24% 22
Samoa Samoa 101,261,982 +4.18% 155
Kosovo Kosovo 2,403,491,946 +4.01% 126
South Africa South Africa 72,878,894,076 -0.445% 40
Zambia Zambia 8,925,434,847 +3.52% 86
Zimbabwe Zimbabwe 6,723,414,005 +2.66% 92

                    
# 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 = 'NV.IND.TOTL.KD'

# 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 <- 'NV.IND.TOTL.KD'

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