Aquaculture production (metric tons)

Source: worldbank.org, 03.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Aruba Aruba 1.5 0% 170
Afghanistan Afghanistan 11,150 +0.387% 74
Angola Angola 2,336 -16.8% 105
Albania Albania 8,812 +1.98% 80
United Arab Emirates United Arab Emirates 3,525 +32.4% 97
Argentina Argentina 6,022 +63.3% 86
Armenia Armenia 24,000 +26.8% 53
American Samoa American Samoa 18 +20% 159
Antigua & Barbuda Antigua & Barbuda 20 0% 158
Australia Australia 125,231 -2.85% 32
Austria Austria 4,719 -4.1% 93
Azerbaijan Azerbaijan 466 -8.09% 134
Burundi Burundi 540 0% 132
Belgium Belgium 243 +8.97% 137
Benin Benin 4,550 +9.64% 94
Burkina Faso Burkina Faso 894 +1.82% 128
Bangladesh Bangladesh 2,731,070 +3.5% 5
Bulgaria Bulgaria 9,511 -37.3% 76
Bahrain Bahrain 56 +9.8% 152
Bahamas Bahamas 1 0% 171
Bosnia & Herzegovina Bosnia & Herzegovina 3,960 +2.63% 95
Belarus Belarus 7,164 -15.8% 83
Belize Belize 1,130 +85.6% 120
Brazil Brazil 738,881 +13.6% 14
Barbados Barbados 5.5 -73.2% 166
Brunei Brunei 5,020 +5.29% 90
Bhutan Bhutan 191 -1.1% 141
Botswana Botswana 171 +4.91% 143
Central African Republic Central African Republic 215 +2.38% 138
Canada Canada 166,463 -12.5% 25
Switzerland Switzerland 2,500 +5.75% 103
Chile Chile 1,524,149 +5.59% 9
China China 75,388,639 +3.55% 1
Côte d’Ivoire Côte d’Ivoire 6,200 +8.39% 85
Cameroon Cameroon 10,118 +3.16% 75
Congo - Brazzaville Congo - Brazzaville 977 +7.2% 124
Colombia Colombia 204,942 +6.45% 23
Cape Verde Cape Verde 35 +25% 156
Costa Rica Costa Rica 16,772 -3.1% 62
Cuba Cuba 15,389 -32.1% 64
Curaçao Curaçao 0 173
Cayman Islands Cayman Islands 88 +3.53% 150
Cyprus Cyprus 7,594 -3.41% 82
Czechia Czechia 19,259 -8.25% 59
Germany Germany 26,545 -18.7% 51
Dominica Dominica 2.5 +66.7% 168
Denmark Denmark 37,921 -6.58% 47
Dominican Republic Dominican Republic 3,750 0% 96
Algeria Algeria 5,208 +8.97% 89
Ecuador Ecuador 1,123,048 +24.2% 11
Egypt Egypt 1,552,430 -1.51% 8
Eritrea Eritrea 4 0% 167
Spain Spain 276,071 -1.37% 21
Estonia Estonia 801 -5.73% 130
Ethiopia Ethiopia 1,070 +44.6% 123
Finland Finland 16,281 +13.1% 63
Fiji Fiji 211 +2.38% 139
France France 200,490 +3.7% 24
Faroe Islands Faroe Islands 108,745 -6.06% 35
Gabon Gabon 87 +20.8% 151
Georgia Georgia 2,743 -1.69% 100
Ghana Ghana 132,682 +48.4% 29
Guinea Guinea 1,180 +2.61% 118
Gambia Gambia 42 +20% 155
Guinea-Bissau Guinea-Bissau 15 0% 160
Equatorial Guinea Equatorial Guinea 15 0% 160
Greece Greece 142,008 -1.33% 27
Grenada Grenada 26 +15.6% 157
Guatemala Guatemala 42,313 +29.9% 45
Guam Guam 108 +2.86% 146
Guyana Guyana 953 +573% 125
Hong Kong SAR China Hong Kong SAR China 3,361 -16.2% 99
Honduras Honduras 73,193 +15.7% 40
Croatia Croatia 27,156 +0.539% 50
Haiti Haiti 1,685 +4.66% 112
Hungary Hungary 18,948 +6.17% 60
Indonesia Indonesia 14,633,869 +0.968% 2
India India 10,235,300 +8.79% 3
Ireland Ireland 44,014 +4.55% 44
Iraq Iraq 23,000 +1.35% 54
Iceland Iceland 51,362 -3.37% 42
Israel Israel 13,840 -6.96% 66
Italy Italy 132,661 -9.05% 30
Jamaica Jamaica 945 +6.88% 126
Jordan Jordan 2,582 +20.4% 102
Japan Japan 942,560 -1.78% 13
Kazakhstan Kazakhstan 9,438 +73.5% 77
Kenya Kenya 28,898 +1.65% 49
Kyrgyzstan Kyrgyzstan 20,698 +101% 57
Cambodia Cambodia 330,600 -5.1% 19
Kiribati Kiribati 2 0% 169
St. Kitts & Nevis St. Kitts & Nevis 4 +14.3% 167
Kuwait Kuwait 464 +0.433% 135
Lebanon Lebanon 938 +0.214% 127
Liberia Liberia 1,375 +19.6% 117
Libya Libya 10 0% 163
St. Lucia St. Lucia 209 -0.612% 140
Sri Lanka Sri Lanka 59,080 +15.9% 41
Lesotho Lesotho 1,836 +22.3% 108
Lithuania Lithuania 4,859 -5.38% 91
Latvia Latvia 870 -3.49% 129
Morocco Morocco 2,310 +15.1% 106
Madagascar Madagascar 25,128 +53.2% 52
Mexico Mexico 289,619 +20.8% 20
Marshall Islands Marshall Islands 6.34 +199% 165
North Macedonia North Macedonia 1,814 +9.26% 109
Mali Mali 8,830 +4.08% 79
Malta Malta 18,051 +10% 61
Myanmar (Burma) Myanmar (Burma) 1,197,078 +2.55% 10
Montenegro Montenegro 1,087 +26.7% 122
Mozambique Mozambique 5,539 +33.7% 88
Mauritius Mauritius 1,545 -33.3% 115
Malawi Malawi 7,148 -28.1% 84
Malaysia Malaysia 574,182 +37.5% 15
Namibia Namibia 340 +5.92% 136
New Caledonia New Caledonia 1,456 +1.36% 116
Niger Niger 500 +5.93% 133
Nigeria Nigeria 259,106 -6% 22
Nicaragua Nicaragua 31,569 +1.81% 48
Netherlands Netherlands 39,430 -3.1% 46
Norway Norway 1,648,469 -1% 7
Nepal Nepal 87,385 +3.67% 38
Nauru Nauru 0.5 0% 172
New Zealand New Zealand 106,152 -9.15% 36
Oman Oman 3,468 +104% 98
Pakistan Pakistan 165,475 +0.576% 26
Panama Panama 11,847 +76.2% 70
Peru Peru 140,931 -6.56% 28
Philippines Philippines 2,349,252 +4.58% 6
Palau Palau 10 -10.7% 163
Papua New Guinea Papua New Guinea 2,462 +5.12% 104
Poland Poland 46,110 +2.95% 43
Puerto Rico Puerto Rico 11 0% 162
Portugal Portugal 20,968 +7.44% 55
Paraguay Paraguay 20,000 +41.3% 58
Palestinian Territories Palestinian Territories 727 +4.3% 131
French Polynesia French Polynesia 1,752 +12.5% 111
Qatar Qatar 97.9 -14.1% 148
Romania Romania 11,211 -4.3% 73
Russia Russia 348,187 +9.03% 18
Rwanda Rwanda 12,202 +18.3% 68
Saudi Arabia Saudi Arabia 119,845 +4.68% 34
Sudan Sudan 9,000 0% 78
Senegal Senegal 1,585 +37.8% 114
Singapore Singapore 4,745 -9.5% 92
Solomon Islands Solomon Islands 11,879 -4.69% 69
Sierra Leone Sierra Leone 145 +16% 144
El Salvador El Salvador 12,919 +1.33% 67
Serbia Serbia 5,776 -21% 87
South Sudan South Sudan 47 +4.44% 153
Suriname Suriname 45 +12.5% 154
Slovakia Slovakia 2,614 +3.98% 101
Slovenia Slovenia 1,644 -2.5% 113
Sweden Sweden 11,327 -26.5% 72
Eswatini Eswatini 100 0% 147
Seychelles Seychelles 0 173
Syria Syria 1,755 -2.77% 110
Chad Chad 120 +9.09% 145
Togo Togo 1,151 +30.5% 119
Thailand Thailand 1,001,181 +1.04% 12
Tajikistan Tajikistan 2,248 +10.3% 107
Turkmenistan Turkmenistan 175 +9.38% 142
Timor-Leste Timor-Leste 1,125 +3.12% 121
Tonga Tonga 100 0% 147
Trinidad & Tobago Trinidad & Tobago 7.4 -59.3% 164
Tunisia Tunisia 20,926 -19.8% 56
Turkey Turkey 514,823 +9.15% 16
Tuvalu Tuvalu 1 0% 171
Tanzania Tanzania 120,621 +14.5% 33
Uganda Uganda 101,377 -26.8% 37
Ukraine Ukraine 14,630 -13.3% 65
Uruguay Uruguay 91 +8.46% 149
United States United States 478,824 +3.72% 17
Uzbekistan Uzbekistan 130,274 +9.54% 31
British Virgin Islands British Virgin Islands 1 0% 171
Vietnam Vietnam 5,170,375 +8.85% 4
Vanuatu Vanuatu 4 +33.3% 167
Samoa Samoa 14 +40% 161
Yemen Yemen 10 0% 163
South Africa South Africa 11,355 +9.75% 71
Zambia Zambia 75,648 +19.4% 39
Zimbabwe Zimbabwe 8,353 +65.2% 81

                    
# 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 = 'ER.FSH.AQUA.MT'

# 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 <- 'ER.FSH.AQUA.MT'

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