Labor force, total

Source: worldbank.org, 01.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 9,132,918 +3% 56
Angola Angola 15,960,547 +3.44% 40
Albania Albania 1,369,710 -0.504% 132
United Arab Emirates United Arab Emirates 7,090,447 +4.37% 66
Argentina Argentina 22,285,744 +0.978% 33
Armenia Armenia 1,510,047 +2.07% 130
Australia Australia 14,911,672 +2.2% 42
Austria Austria 4,768,178 +0.126% 87
Azerbaijan Azerbaijan 5,019,885 +0.198% 83
Burundi Burundi 6,106,804 +3.47% 73
Belgium Belgium 5,415,520 +0.896% 79
Benin Benin 6,397,139 +3.11% 71
Burkina Faso Burkina Faso 6,461,318 +2.77% 70
Bangladesh Bangladesh 77,355,168 +2% 8
Bulgaria Bulgaria 3,123,797 -0.252% 105
Bahrain Bahrain 913,340 +0.866% 141
Bahamas Bahamas 237,110 +0.698% 167
Bosnia & Herzegovina Bosnia & Herzegovina 1,355,710 -0.767% 134
Belarus Belarus 4,817,451 -0.807% 86
Belize Belize 189,961 +1.91% 170
Bolivia Bolivia 6,859,259 +2.34% 67
Brazil Brazil 106,790,403 +0.408% 6
Barbados Barbados 147,247 -0.256% 171
Brunei Brunei 233,520 +0.692% 168
Bhutan Bhutan 406,457 +1.26% 154
Botswana Botswana 1,173,186 +2.3% 136
Central African Republic Central African Republic 2,000,171 +3.77% 123
Canada Canada 22,867,596 +3.06% 30
Switzerland Switzerland 5,152,970 +1.25% 82
Chile Chile 10,088,445 +0.967% 54
China China 773,879,678 -0.094% 1
Côte d’Ivoire Côte d’Ivoire 12,594,667 +3.1% 46
Cameroon Cameroon 11,118,837 +2.54% 50
Congo - Kinshasa Congo - Kinshasa 38,546,033 +3.35% 17
Congo - Brazzaville Congo - Brazzaville 2,563,444 +3.13% 118
Colombia Colombia 26,821,693 +1.25% 26
Comoros Comoros 276,379 +2.95% 161
Cape Verde Cape Verde 224,498 +1.49% 169
Costa Rica Costa Rica 2,357,187 +0.709% 120
Cuba Cuba 4,858,882 -0.785% 85
Cyprus Cyprus 772,322 +0.746% 147
Czechia Czechia 5,541,179 +0.0909% 77
Germany Germany 43,772,213 -0.839% 15
Djibouti Djibouti 265,171 +1.85% 163
Denmark Denmark 3,210,383 +0.647% 102
Dominican Republic Dominican Republic 5,413,316 +1.69% 80
Algeria Algeria 13,294,279 +0.911% 45
Ecuador Ecuador 8,820,523 +1.43% 58
Egypt Egypt 33,748,776 +1.84% 20
Eritrea Eritrea 1,709,561 +2.75% 127
Spain Spain 24,386,307 +0.773% 28
Estonia Estonia 756,167 +0.0997% 148
Ethiopia Ethiopia 54,470,278 +2.99% 13
Finland Finland 2,898,358 +1.23% 109
Fiji Fiji 387,815 +0.736% 156
France France 31,725,232 +0.336% 22
Gabon Gabon 824,439 +2.12% 144
United Kingdom United Kingdom 35,358,530 +1.17% 19
Georgia Georgia 1,832,929 -0.956% 124
Ghana Ghana 13,927,871 +1.85% 44
Guinea Guinea 4,534,264 +2.43% 90
Gambia Gambia 783,147 +3% 145
Guinea-Bissau Guinea-Bissau 845,297 +2.91% 143
Equatorial Guinea Equatorial Guinea 714,966 +2.28% 149
Greece Greece 4,654,775 -0.114% 89
Guatemala Guatemala 7,575,261 +2.29% 64
Guam Guam 77,700 +0.806% 176
Guyana Guyana 292,190 +0.392% 160
Hong Kong SAR China Hong Kong SAR China 3,835,727 -0.695% 93
Honduras Honduras 4,295,619 +1.95% 91
Croatia Croatia 1,733,415 +0.0978% 126
Haiti Haiti 5,281,030 +1.56% 81
Hungary Hungary 4,953,933 -0.265% 84
Indonesia Indonesia 143,143,940 +1.27% 4
India India 607,691,498 +3.18% 2
Ireland Ireland 2,856,577 +2.04% 112
Iran Iran 28,574,661 +0.808% 24
Iraq Iraq 12,008,181 +2.76% 48
Iceland Iceland 248,445 +3.12% 165
Israel Israel 4,709,795 +1.72% 88
Italy Italy 25,828,140 +0.0669% 27
Jamaica Jamaica 1,570,210 +0.715% 128
Jordan Jordan 3,079,844 +1.58% 106
Japan Japan 69,382,089 +0.267% 10
Kazakhstan Kazakhstan 10,285,416 +0.629% 53
Kenya Kenya 23,781,100 +2.57% 29
Kyrgyzstan Kyrgyzstan 3,197,379 +2.2% 103
Cambodia Cambodia 9,903,822 +1.68% 55
South Korea South Korea 29,713,473 +0.425% 23
Kuwait Kuwait 3,002,559 +2.61% 108
Laos Laos 3,584,797 +2.08% 96
Liberia Liberia 2,606,936 +2.94% 116
Libya Libya 2,584,879 +1.17% 117
St. Lucia St. Lucia 102,438 +0.448% 175
Sri Lanka Sri Lanka 8,498,980 -0.318% 60
Lesotho Lesotho 884,160 +1.17% 142
Lithuania Lithuania 1,547,740 +0.699% 129
Luxembourg Luxembourg 349,964 +1.39% 158
Latvia Latvia 954,883 -1.08% 140
Macao SAR China Macao SAR China 382,104 +0.883% 157
Morocco Morocco 12,475,182 +1.01% 47
Moldova Moldova 1,357,837 -2.27% 133
Madagascar Madagascar 16,519,381 +3.01% 39
Maldives Maldives 270,346 +1.38% 162
Mexico Mexico 60,958,888 +1.35% 11
North Macedonia North Macedonia 779,211 -2.25% 146
Mali Mali 9,126,488 +3.55% 57
Malta Malta 318,150 +4.18% 159
Myanmar (Burma) Myanmar (Burma) 22,741,699 +0.777% 32
Montenegro Montenegro 245,288 -0.218% 166
Mongolia Mongolia 1,449,106 +1.06% 131
Mozambique Mozambique 15,172,714 +3.39% 41
Mauritania Mauritania 1,209,855 +3.22% 135
Mauritius Mauritius 594,884 -0.131% 152
Malawi Malawi 8,601,901 +3.2% 59
Malaysia Malaysia 18,264,000 +1.9% 35
Namibia Namibia 1,130,939 +2.77% 138
New Caledonia New Caledonia 130,763 +0.427% 172
Niger Niger 10,486,041 +3.88% 51
Nigeria Nigeria 113,349,564 +2.87% 5
Nicaragua Nicaragua 3,224,663 +2% 101
Netherlands Netherlands 10,315,268 +0.661% 52
Norway Norway 3,042,209 +1.23% 107
Nepal Nepal 8,435,336 +0.126% 61
New Zealand New Zealand 3,124,165 +2.04% 104
Oman Oman 2,695,516 +5.27% 115
Pakistan Pakistan 83,643,815 +2.1% 7
Panama Panama 2,205,785 +1.63% 121
Peru Peru 18,917,570 +1.66% 34
Philippines Philippines 50,979,290 +1.24% 14
Papua New Guinea Papua New Guinea 3,660,451 +2.39% 95
Poland Poland 18,244,832 -0.528% 36
Puerto Rico Puerto Rico 1,151,595 +0.203% 137
North Korea North Korea 17,637,357 +0.36% 37
Portugal Portugal 5,464,162 +0.911% 78
Paraguay Paraguay 3,502,274 +1.56% 97
French Polynesia French Polynesia 119,055 -0.0504% 173
Qatar Qatar 2,122,959 +7.61% 122
Romania Romania 8,263,006 -0.206% 62
Russia Russia 72,516,535 -0.913% 9
Rwanda Rwanda 5,671,034 +2.51% 76
Saudi Arabia Saudi Arabia 17,168,015 +5.11% 38
Senegal Senegal 5,763,236 +3.3% 74
Singapore Singapore 3,722,265 +2.79% 94
Solomon Islands Solomon Islands 435,634 +3.06% 153
Sierra Leone Sierra Leone 2,863,312 +2.36% 111
El Salvador El Salvador 2,890,348 +1.27% 110
Somalia Somalia 3,439,353 +3.64% 98
Serbia Serbia 3,229,504 -0.522% 100
São Tomé & Príncipe São Tomé & Príncipe 34,471 +2.55% 181
Suriname Suriname 255,453 +1.23% 164
Slovakia Slovakia 2,779,407 -0.47% 114
Slovenia Slovenia 1,058,286 -0.0167% 139
Sweden Sweden 5,699,211 +0.519% 75
Eswatini Eswatini 390,566 +0.958% 155
Syria Syria 6,616,919 +5.91% 68
Chad Chad 6,599,919 +6.08% 69
Togo Togo 3,344,953 +2.82% 99
Thailand Thailand 40,623,017 -0.261% 16
Tajikistan Tajikistan 2,780,399 +2.21% 113
Turkmenistan Turkmenistan 2,444,797 +1.88% 119
Timor-Leste Timor-Leste 615,914 +2.2% 151
Tonga Tonga 34,784 -1.05% 180
Trinidad & Tobago Trinidad & Tobago 649,891 -0.325% 150
Tunisia Tunisia 4,246,885 +0.621% 92
Turkey Turkey 36,080,817 +1.48% 18
Tanzania Tanzania 32,982,660 +3.23% 21
Uganda Uganda 22,829,059 +3.55% 31
Uruguay Uruguay 1,767,639 +0.371% 125
United States United States 174,173,594 +1.09% 3
Uzbekistan Uzbekistan 13,974,298 +1.2% 43
St. Vincent & Grenadines St. Vincent & Grenadines 52,149 -0.186% 178
Venezuela Venezuela 11,135,919 +0.614% 49
U.S. Virgin Islands U.S. Virgin Islands 47,229 -0.754% 179
Vietnam Vietnam 57,133,476 +0.589% 12
Vanuatu Vanuatu 118,094 +2.29% 174
Samoa Samoa 57,239 -0.426% 177
Yemen Yemen 7,847,788 +2.84% 63
South Africa South Africa 27,765,994 +1.53% 25
Zambia Zambia 7,407,019 +3.63% 65
Zimbabwe Zimbabwe 6,386,440 +2.47% 72

                    
# 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 = 'SL.TLF.TOTL.IN'

# 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 <- 'SL.TLF.TOTL.IN'

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