Nitrous oxide (N2O) emissions (total) excluding LULUCF (% change from 1990)

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Aruba Aruba 114 +8.7% 40
Afghanistan Afghanistan 75.1 +0.746% 64
Angola Angola 88.9 +0.974% 59
Albania Albania -32.4 +6.77% 183
United Arab Emirates United Arab Emirates 258 +2.16% 8
Argentina Argentina 51.7 +5.63% 91
Armenia Armenia -23 -5.65% 171
American Samoa American Samoa 63.6 0% 75
Antigua & Barbuda Antigua & Barbuda 1.72 0% 141
Australia Australia 25.7 +5.76% 119
Austria Austria -26.1 +4.13% 179
Azerbaijan Azerbaijan 26.9 +9.46% 118
Burundi Burundi 134 +1.68% 36
Belgium Belgium 2.28 -62.6% 139
Benin Benin 153 +5.66% 28
Burkina Faso Burkina Faso 154 +2.83% 27
Bangladesh Bangladesh 109 +2.9% 44
Bulgaria Bulgaria -41.5 +2.58% 192
Bahrain Bahrain 159 +2.93% 23
Bahamas Bahamas 57.4 +16.8% 83
Bosnia & Herzegovina Bosnia & Herzegovina 24.6 -12.7% 121
Belarus Belarus -1.18 -19.1% 148
Belize Belize 56.6 +19.2% 84
Bermuda Bermuda -1.27 -75% 149
Bolivia Bolivia 134 +7.79% 35
Brazil Brazil 113 +1.11% 41
Barbados Barbados -9.41 -13.6% 158
Brunei Brunei 499 +8.2% 3
Bhutan Bhutan 25 -0.545% 120
Botswana Botswana -12.6 -38.6% 164
Central African Republic Central African Republic 1.36 -92.6% 142
Canada Canada 0.341 -108% 143
Switzerland Switzerland -15.6 -9.17% 165
Chile Chile 59.6 +2.34% 82
China China 50.1 +5.81% 92
Côte d’Ivoire Côte d’Ivoire 101 +4.39% 50
Cameroon Cameroon 37.5 -1.18% 104
Congo - Kinshasa Congo - Kinshasa 9.86 -29.1% 132
Congo - Brazzaville Congo - Brazzaville 73.9 -16.6% 65
Colombia Colombia 35.5 +2.34% 106
Comoros Comoros 61.7 +0.469% 80
Cape Verde Cape Verde 66.4 -1.77% 69
Costa Rica Costa Rica 17.5 +4.06% 129
Cuba Cuba -37.9 +1.77% 186
Cayman Islands Cayman Islands 167 +6.38% 21
Cyprus Cyprus 23 +5.34% 125
Czechia Czechia -47 +6.94% 195
Germany Germany -53.4 +3.6% 197
Djibouti Djibouti 29.7 -0.419% 111
Dominica Dominica 23.1 +5% 124
Denmark Denmark -32.2 +5.12% 182
Dominican Republic Dominican Republic 72.6 +3.56% 66
Algeria Algeria 91.7 -0.576% 57
Ecuador Ecuador 65.3 +3.19% 73
Egypt Egypt 96.1 -2% 53
Eritrea Eritrea 33.7 +1.92% 107
Spain Spain -8.7 +69.2% 157
Estonia Estonia -23.4 +6.76% 173
Ethiopia Ethiopia 166 +3.54% 22
Finland Finland -10.3 +85.1% 160
Fiji Fiji -23.8 -0.988% 175
France France -41.5 +2.44% 191
Faroe Islands Faroe Islands 28.3 0% 117
Gabon Gabon 63.4 -4.17% 77
United Kingdom United Kingdom -32.9 +4.49% 184
Georgia Georgia -3.47 -45.6% 152
Ghana Ghana 146 -1.2% 32
Gibraltar Gibraltar 256 +3.23% 9
Guinea Guinea 251 +3.82% 10
Gambia Gambia 24.5 -9.91% 122
Guinea-Bissau Guinea-Bissau 66.1 -3.47% 71
Equatorial Guinea Equatorial Guinea 159 +0.331% 24
Greece Greece -49 +3.37% 196
Grenada Grenada 29 +5.88% 114
Greenland Greenland 139 0% 34
Guatemala Guatemala 155 +3.73% 26
Guam Guam 94.4 0% 56
Guyana Guyana 5.29 +218% 136
Hong Kong SAR China Hong Kong SAR China -7.31 -47.9% 156
Honduras Honduras 48.3 +8.34% 95
Croatia Croatia -29.9 +1.77% 180
Haiti Haiti 71.8 +0.0509% 67
Hungary Hungary -38.3 -9.97% 187
Indonesia Indonesia 53.5 +6.77% 89
India India 112 +5.1% 42
Ireland Ireland -5.18 +13.2% 154
Iran Iran 62.1 +4.98% 79
Iraq Iraq 46.1 +5.99% 97
Iceland Iceland -11.8 +5.35% 162
Israel Israel 52.6 +0.444% 90
Italy Italy -44 +0.985% 193
Jamaica Jamaica -19.1 -5.56% 170
Jordan Jordan 116 +2.23% 39
Japan Japan -44.7 +4.17% 194
Kazakhstan Kazakhstan -17.8 +5.77% 168
Kenya Kenya 124 +7.49% 38
Kyrgyzstan Kyrgyzstan -10.6 -7.21% 161
Cambodia Cambodia 41.8 -4.05% 99
Kiribati Kiribati 94.4 +3.03% 56
St. Kitts & Nevis St. Kitts & Nevis 32.1 +38.5% 108
South Korea South Korea 54.9 -4.12% 87
Kuwait Kuwait 172 +1.11% 20
Laos Laos 182 +19.3% 18
Lebanon Lebanon 88.3 -0.111% 60
Liberia Liberia 81.8 +2.26% 62
Libya Libya 47.7 +4.44% 96
St. Lucia St. Lucia 31.2 +2.63% 109
Sri Lanka Sri Lanka -0.0701 -104% 145
Lesotho Lesotho -23 +22% 172
Lithuania Lithuania 12.2 -4.75% 131
Luxembourg Luxembourg -9.55 +16.3% 159
Latvia Latvia -24.2 +4.57% 176
Macao SAR China Macao SAR China 150 +3.98% 31
Morocco Morocco 31.2 +1.05% 110
Moldova Moldova -11.8 -35.5% 163
Madagascar Madagascar -0.308 -116% 147
Maldives Maldives 750 +2.91% 2
Mexico Mexico 19.9 +5.22% 128
North Macedonia North Macedonia -53.6 +1.82% 198
Mali Mali 210 +2.69% 13
Malta Malta -30.3 +4.4% 181
Myanmar (Burma) Myanmar (Burma) 66.3 -12.6% 70
Mongolia Mongolia 177 +5.27% 19
Mozambique Mozambique 40.3 -29.8% 102
Mauritania Mauritania 86.5 +1.81% 61
Mauritius Mauritius 6.67 +3.88% 135
Malawi Malawi 339 +8.23% 7
Malaysia Malaysia 49.4 +2.2% 94
Namibia Namibia 40.6 -0.654% 101
New Caledonia New Caledonia 110 +9.8% 43
Niger Niger 345 +5.28% 6
Nigeria Nigeria 143 +4.03% 33
Nicaragua Nicaragua 55.9 +4.25% 85
Netherlands Netherlands -38.9 +0.891% 188
Norway Norway -24.6 +1.4% 177
Nepal Nepal 95.6 +5.26% 55
Nauru Nauru 100 0% 51
New Zealand New Zealand 20.9 -1.5% 126
Oman Oman 239 +3.06% 11
Pakistan Pakistan 156 +2.66% 25
Panama Panama 39.4 +5.73% 103
Peru Peru 99.2 +5.08% 52
Philippines Philippines 101 +6.37% 49
Palau Palau -23.7 -7.37% 174
Papua New Guinea Papua New Guinea 65.4 +10.4% 72
Poland Poland 3.01 -62.6% 137
Puerto Rico Puerto Rico 28.6 +10.2% 116
North Korea North Korea -67.1 -0.988% 199
Portugal Portugal -17.5 +11.2% 167
Paraguay Paraguay 75.5 -0.315% 63
French Polynesia French Polynesia 6.82 +33.3% 134
Qatar Qatar 489 +5.34% 4
Romania Romania -37.4 -1.74% 185
Russia Russia -25.8 -4.1% 178
Rwanda Rwanda 95.7 -3.04% 54
Saudi Arabia Saudi Arabia 108 +8.75% 46
Sudan Sudan 106 +2.19% 47
Senegal Senegal 102 +3.36% 48
Singapore Singapore 60.8 -9.4% 81
Solomon Islands Solomon Islands 50 +3.7% 93
Sierra Leone Sierra Leone 90 +1.01% 58
El Salvador El Salvador -2.16 -27.1% 150
Somalia Somalia 2.3 -13.9% 138
São Tomé & Príncipe São Tomé & Príncipe 184 +4.1% 17
Suriname Suriname 13.5 +21.4% 130
Slovakia Slovakia -17.3 -6.47% 166
Slovenia Slovenia -39.2 +5.78% 189
Sweden Sweden -18.2 +15.3% 169
Eswatini Eswatini 1.84 +56.1% 140
Seychelles Seychelles 190 +4.59% 15
Syria Syria -0.0812 -98.7% 146
Turks & Caicos Islands Turks & Caicos Islands 2,200 +4.76% 1
Chad Chad 411 +5.91% 5
Togo Togo 153 +2.49% 29
Thailand Thailand 37 -2.37% 105
Tajikistan Tajikistan 63.2 +4.87% 78
Turkmenistan Turkmenistan 211 -0.508% 12
Timor-Leste Timor-Leste 129 +0.993% 37
Tonga Tonga 29.6 +3.57% 112
Trinidad & Tobago Trinidad & Tobago 54.6 +2.55% 88
Tunisia Tunisia 29.4 +0.541% 113
Turkey Turkey 63.4 +3.85% 76
Tuvalu Tuvalu 55.6 0% 86
Tanzania Tanzania 151 +2.96% 30
Uganda Uganda 198 +0.987% 14
Ukraine Ukraine -41.4 -5.87% 190
Uruguay Uruguay 40.9 +1.93% 100
United States United States -4.38 +18.5% 153
Uzbekistan Uzbekistan 66.5 -0.934% 68
St. Vincent & Grenadines St. Vincent & Grenadines -5.75 0% 155
Venezuela Venezuela 7.96 +2.66% 133
British Virgin Islands British Virgin Islands 64 +6.67% 74
U.S. Virgin Islands U.S. Virgin Islands 28.9 0% 115
Vietnam Vietnam 185 +8.37% 16
Vanuatu Vanuatu -3.11 0% 151
Samoa Samoa 23.6 -7.06% 123
Yemen Yemen 108 +4.25% 45
South Africa South Africa 20.6 +6.49% 127
Zambia Zambia 45 +4.54% 98
Zimbabwe Zimbabwe 0.161 -125% 144

                    
# 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.N2O.ZG.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.N2O.ZG.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))