Carbon dioxide (CO2) emissions excluding LULUCF per capita (t CO2e/capita)

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Aruba Aruba 4.94 +5.38% 54
Afghanistan Afghanistan 0.21 +3.19% 181
Angola Angola 0.768 +0.0749% 148
Albania Albania 1.67 +0.778% 125
United Arab Emirates United Arab Emirates 19.6 -4.32% 8
Argentina Argentina 4.04 -5.29% 74
Armenia Armenia 2.61 +6.15% 98
American Samoa American Samoa 0.0021 +1.73% 197
Antigua & Barbuda Antigua & Barbuda 3.46 +4.88% 85
Australia Australia 14 -2.72% 14
Austria Austria 6.44 -4.88% 39
Azerbaijan Azerbaijan 4.21 +8.34% 70
Burundi Burundi 0.0617 -2.15% 192
Belgium Belgium 7.15 -6.91% 34
Benin Benin 0.456 -5.16% 163
Burkina Faso Burkina Faso 0.261 -4.54% 178
Bangladesh Bangladesh 0.728 -0.645% 150
Bulgaria Bulgaria 6.17 -20.3% 43
Bahrain Bahrain 23.7 -0.293% 3
Bahamas Bahamas 4.22 +4.94% 69
Bosnia & Herzegovina Bosnia & Herzegovina 6.91 -2.55% 36
Belarus Belarus 5.9 -4.15% 45
Belize Belize 0.677 +4.25% 153
Bermuda Bermuda 5.42 +5.53% 49
Bolivia Bolivia 1.94 +3.28% 118
Brazil Brazil 2.27 -0.272% 108
Barbados Barbados 2.82 +4.78% 96
Brunei Brunei 21.2 +2.03% 6
Bhutan Bhutan 2.53 +2.4% 102
Botswana Botswana 2.99 +0.291% 94
Central African Republic Central African Republic 0.0715 +3.32% 191
Canada Canada 14.3 -2.92% 13
Switzerland Switzerland 3.85 -1.8% 78
Chile Chile 4.27 -5.96% 68
China China 9.4 +5.96% 22
Côte d’Ivoire Côte d’Ivoire 0.462 -4.79% 162
Cameroon Cameroon 0.379 -3.25% 168
Congo - Kinshasa Congo - Kinshasa 0.0359 -5.51% 195
Congo - Brazzaville Congo - Brazzaville 1.17 -8.32% 135
Colombia Colombia 1.93 +8.69% 120
Comoros Comoros 0.374 -1.75% 169
Cape Verde Cape Verde 1.93 -3.45% 121
Costa Rica Costa Rica 1.68 +5.48% 124
Cuba Cuba 2 +6.23% 116
Cayman Islands Cayman Islands 4.9 +3.36% 55
Cyprus Cyprus 5.34 -1.04% 50
Czechia Czechia 8.33 -10.6% 27
Germany Germany 6.95 -11.7% 35
Djibouti Djibouti 0.65 -1.28% 155
Dominica Dominica 1.2 +5.91% 133
Denmark Denmark 4.5 -5.57% 61
Dominican Republic Dominican Republic 2.77 +4.82% 97
Algeria Algeria 3.91 -4.81% 76
Ecuador Ecuador 2.52 +6.33% 103
Egypt Egypt 2.18 -0.81% 110
Eritrea Eritrea 0.193 -1.59% 182
Spain Spain 4.49 -8.81% 62
Estonia Estonia 8.35 -10.6% 26
Ethiopia Ethiopia 0.13 -1.58% 187
Finland Finland 5.78 -11.2% 46
Fiji Fiji 2.39 +2.83% 107
France France 4.14 -9.33% 72
Faroe Islands Faroe Islands 0.0386 -0.941% 194
Micronesia (Federated States of) Micronesia (Federated States of) 0 199
Gabon Gabon 1.98 -10.7% 117
United Kingdom United Kingdom 4.41 -8.94% 65
Georgia Georgia 3.46 +1.74% 86
Ghana Ghana 0.715 -4.36% 152
Gibraltar Gibraltar 17.9 -0.271% 11
Guinea Guinea 0.258 -4.82% 179
Gambia Gambia 0.225 -5.14% 180
Guinea-Bissau Guinea-Bissau 0.161 -5.1% 183
Equatorial Guinea Equatorial Guinea 2.04 -11.4% 115
Greece Greece 4.97 -5.65% 53
Grenada Grenada 1.22 +5.32% 131
Greenland Greenland 10.2 +0.749% 20
Guatemala Guatemala 1.18 +5.24% 134
Guam Guam 0.0024 -0.796% 196
Guyana Guyana 4 -1.11% 75
Hong Kong SAR China Hong Kong SAR China 4.6 +3.59% 57
Honduras Honduras 1.03 +4.18% 139
Croatia Croatia 4.52 -0.0246% 60
Haiti Haiti 0.304 +3.06% 171
Hungary Hungary 4.57 -7.81% 58
Indonesia Indonesia 2.4 +1.86% 106
India India 2.05 +6.87% 114
Ireland Ireland 6.12 -8.15% 44
Iran Iran 8.6 +1.17% 24
Iraq Iraq 4.28 -0.977% 67
Iceland Iceland 7.85 -7.78% 31
Israel Israel 6.22 -5.43% 42
Italy Italy 5.18 -8.17% 51
Jamaica Jamaica 2.42 +7.76% 105
Jordan Jordan 2.06 +3.88% 113
Japan Japan 7.59 -6% 33
Kazakhstan Kazakhstan 11.8 -1.6% 16
Kenya Kenya 0.393 -0.386% 165
Kyrgyzstan Kyrgyzstan 1.47 -0.296% 127
Cambodia Cambodia 1.03 +2.23% 138
Kiribati Kiribati 0.735 +1.79% 149
St. Kitts & Nevis St. Kitts & Nevis 2.54 +5.3% 101
South Korea South Korea 11.1 -2.51% 17
Kuwait Kuwait 23 -3.5% 4
Laos Laos 3.39 +4.52% 88
Lebanon Lebanon 3 +2.22% 93
Liberia Liberia 0.298 -4.69% 172
Libya Libya 8.39 +6.18% 25
St. Lucia St. Lucia 1.65 +5.18% 126
Sri Lanka Sri Lanka 0.931 +3.36% 141
Lesotho Lesotho 0.38 +1.98% 167
Lithuania Lithuania 4.57 -1.66% 59
Luxembourg Luxembourg 10.5 -5.45% 18
Latvia Latvia 3.49 -1.5% 84
Macao SAR China Macao SAR China 4.44 +2.93% 64
Morocco Morocco 1.85 -1.63% 122
Moldova Moldova 4.04 +8.01% 73
Madagascar Madagascar 0.131 +0.238% 186
Maldives Maldives 5.47 +3.06% 48
Mexico Mexico 3.75 +3.63% 80
Marshall Islands Marshall Islands 0 199
North Macedonia North Macedonia 4.79 +4.75% 56
Mali Mali 0.28 -5.55% 175
Malta Malta 3.05 -8% 92
Myanmar (Burma) Myanmar (Burma) 0.616 +2.3% 156
Mongolia Mongolia 8.08 +7.12% 28
Northern Mariana Islands Northern Mariana Islands 0 199
Mozambique Mozambique 0.29 -5.7% 174
Mauritania Mauritania 0.926 -5.55% 143
Mauritius Mauritius 3.34 +4.18% 90
Malawi Malawi 0.306 +5.65% 170
Malaysia Malaysia 8.07 +2.01% 29
Namibia Namibia 1.47 +0.0384% 128
New Caledonia New Caledonia 21.4 +4.56% 5
Niger Niger 0.108 -5.98% 190
Nigeria Nigeria 0.561 -3.71% 159
Nicaragua Nicaragua 0.839 +4.5% 146
Netherlands Netherlands 6.87 -8.51% 37
Norway Norway 7.98 -2.22% 30
Nepal Nepal 0.604 +4.21% 157
Nauru Nauru 0 199
New Zealand New Zealand 6.82 +0.929% 38
Oman Oman 18.4 -4.13% 10
Pakistan Pakistan 0.81 -9.72% 147
Panama Panama 3.3 +21.1% 91
Peru Peru 1.73 +1.32% 123
Philippines Philippines 1.4 +6.21% 129
Palau Palau 81.2 +3.15% 1
Papua New Guinea Papua New Guinea 0.573 +0.557% 158
Poland Poland 7.82 -9.25% 32
Puerto Rico Puerto Rico 4.31 +9.91% 66
North Korea North Korea 2.43 +7.72% 104
Portugal Portugal 3.42 -9.67% 87
Paraguay Paraguay 1.21 -0.314% 132
French Polynesia French Polynesia 4.48 +3.15% 63
Qatar Qatar 48.2 +7.78% 2
Romania Romania 3.71 -6.91% 82
Russia Russia 14.4 +2.48% 12
Rwanda Rwanda 0.118 -0.739% 189
Saudi Arabia Saudi Arabia 18.5 -1.75% 9
Sudan Sudan 0.425 -1.92% 164
Senegal Senegal 0.665 -5% 154
Singapore Singapore 9.64 -2.5% 21
Solomon Islands Solomon Islands 0.523 +0.959% 160
Sierra Leone Sierra Leone 0.127 -4.65% 188
El Salvador El Salvador 1.33 +5.34% 130
Somalia Somalia 0.0473 -2.81% 193
São Tomé & Príncipe São Tomé & Príncipe 0.927 +2.42% 142
Suriname Suriname 4.18 +2.58% 71
Slovakia Slovakia 6.42 -1.86% 40
Slovenia Slovenia 5.7 -8.4% 47
Sweden Sweden 3.36 -2.72% 89
Eswatini Eswatini 1.13 +1.81% 136
Seychelles Seychelles 10.3 +2.98% 19
Syria Syria 1.08 -3.66% 137
Turks & Caicos Islands Turks & Caicos Islands 2.23 +4.62% 109
Chad Chad 0.133 -2.02% 185
Togo Togo 0.268 -3.75% 177
Thailand Thailand 3.82 -0.574% 79
Tajikistan Tajikistan 0.896 -0.67% 145
Turkmenistan Turkmenistan 8.96 -2.75% 23
Timor-Leste Timor-Leste 0.508 -2.36% 161
Tonga Tonga 2.1 +3.87% 112
Trinidad & Tobago Trinidad & Tobago 19.9 -2.65% 7
Tunisia Tunisia 2.58 +2.73% 100
Turkey Turkey 5.14 +0.644% 52
Tuvalu Tuvalu 0 199
Tanzania Tanzania 0.291 -0.855% 173
Uganda Uganda 0.148 -2.81% 184
Ukraine Ukraine 3.61 +7.11% 83
Uruguay Uruguay 2.6 +1.31% 99
United States United States 13.9 -3% 15
Uzbekistan Uzbekistan 3.87 -2.71% 77
St. Vincent & Grenadines St. Vincent & Grenadines 0.95 +6.23% 140
Venezuela Venezuela 2.99 +8.33% 95
British Virgin Islands British Virgin Islands 1.93 +3.66% 119
U.S. Virgin Islands U.S. Virgin Islands 0.00191 +0.473% 198
Vietnam Vietnam 3.72 +14% 81
Vanuatu Vanuatu 0.897 +1.04% 144
Samoa Samoa 2.16 +2.75% 111
Yemen Yemen 0.277 -5.5% 176
South Africa South Africa 6.29 -4.22% 41
Zambia Zambia 0.389 +0.384% 166
Zimbabwe Zimbabwe 0.719 +5.34% 151

Carbon dioxide (CO2) emissions excluding Land Use, Land-Use Change, and Forestry (LULUCF) per capita is a crucial environmental indicator that reflects the amount of CO2 emissions produced by an individual in a given region, measured in tons of CO2 equivalent per capita. This statistic is fundamental in understanding the impact of human activities on climate change and global warming, as CO2 is one of the primary greenhouse gases contributing to the greenhouse effect. When evaluating CO2 emissions on a per capita basis, it allows policymakers and researchers to analyze the emissions relative to population size, offering a clearer perspective on per person responsibility and aiding in identifying trends across different regions and timeframes.

The importance of monitoring CO2 emissions per capita resides in its role in shaping effective climate policies and sustainability efforts. A high per capita emission rate typically signifies greater fossil fuel consumption and industrial activity, which can lead to increased pressures on the environment and public health. By contrast, lower per capita emissions can indicate a transition towards more sustainable practices, renewable energy consumption, and energy efficiency measures. This indicator can serve as a benchmark for nations as they strive to meet international climate agreements, improve energy efficiency, and pursue sustainable development.

Several factors influence CO2 emissions per capita, such as energy sources, industrial activity, population density, and transportation methods. Countries that rely heavily on fossil fuels for energy production, such as coal or oil, typically have higher emissions. Conversely, nations investing in renewable energy technologies—such as solar, wind, and hydroelectric power—are likely to report lower emissions. Additionally, economic structures play a significant role; economies centered around manufacturing and industrial production often have higher carbon footprints compared to those emphasizing services or information technology.

A significant correlation exists between CO2 emissions per capita and other indicators, particularly Gross Domestic Product (GDP) and energy consumption. Generally, as a country's GDP grows, so does its energy demand; however, if a nation adopts cleaner energy technologies, it can decouple this relationship, achieving economic growth while reducing carbon emissions. Furthermore, urbanization rates can affect per capita emissions—densely populated urban centers might promote energy-efficient public transport systems, leading to lower per capita figures despite higher total emissions.

The latest data from 2022 reveals a median value of 2.36 tons of CO2e per capita globally. This figure indicates a broader trend towards decreasing emissions on a per capita basis in certain regions, but disparities still exist when we examine specific countries. The top five areas with the highest emissions per capita are concerning, led by Palau at an astounding 76.42 tons per person, followed by Qatar at 38.62 tons, Bahrain at 24.89 tons, Kuwait at 23.99 tons, and the United Arab Emirates at 21.72 tons. These figures highlight the substantial impact of oil and natural gas industries in these nations, along with high consumption lifestyles that contribute to elevated emissions.

Conversely, areas with the lowest emissions per capita demonstrate alternative pathways towards sustainability. The bottom five areas—Marshall Islands, Micronesia (Federated States of), Nauru, Northern Mariana Islands, and Tuvalu, all reporting 0.0 tons of CO2e per capita—suggest either limited industrial activities or significant reliance on renewable energy resources, though such low figures can also reflect unique geographical and socio-economic contexts that may not be directly comparable to larger or more industrialized nations.

Historical data shows that in 1970, the global CO2 emissions per capita were at 4.17 tons. Since then, emissions have fluctuated but generally remained above 4 tons until the pandemic in 2020 led to a temporary decline to 4.44 tons, as global activities slowed down dramatically. By 2021, emissions rebounded to 4.66 tons and slightly increased to 4.67 tons in 2022, emphasizing the ongoing challenges in reducing global carbon footprints despite recognized urgent calls for action against climate change.

Addressing the challenges associated with high CO2 emissions requires multi-faceted strategies. Transitioning towards renewable energy sources, promoting energy efficiency, enhancing public transport systems, and encouraging sustainable urban planning are essential elements of a strategy aimed at reducing per capita emissions. Additionally, raising public awareness and education about carbon footprints and adopting carbon taxes or cap-and-trade programs can incentivize individuals and businesses to reduce their emissions further.

However, there remain flaws in utilizing CO2 emissions per capita as a stand-alone metric. It can oversimplify complex issues regarding carbon production, especially in countries where emissions from exported goods are not accounted for. Nations with high production capabilities but lower populations may reflect a misleadingly low per capita figure compared to highly populated developing countries that may have lower industrial output but higher per capita emissions due to inefficient practices. Thus, it is vital to combine this indicator with others to gain a more comprehensive understanding of carbon emissions and their global implications.

In conclusion, monitoring carbon dioxide emissions excluding LULUCF per capita is paramount for understanding and addressing climate change. While it provides a clear benchmark for evaluating individual contributions to carbon emissions, its effectiveness can be enhanced when viewed alongside other metrics and contextual factors. Comprehensive strategies, including transitioning to renewable energy, enhancing educational outreach, and fostering international cooperation, are necessary steps towards creating a sustainable future and achieving meaningful reductions in global carbon emissions.

                    
# 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 = 'EN.GHG.CO2.PC.CE.AR5'

# 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 <- 'EN.GHG.CO2.PC.CE.AR5'

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