Agriculture, forestry, and fishing, value added (current US$)

Source: worldbank.org, 01.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Angola Angola 13,206,774,101 +4.48% 39
Albania Albania 4,212,008,467 +10.3% 78
Andorra Andorra 18,822,596 +3.93% 151
Argentina Argentina 37,879,476,088 -1.13% 23
Armenia Armenia 2,043,447,661 +0.0294% 98
Australia Australia 38,866,547,522 -12.6% 19
Austria Austria 6,410,636,450 -3.4% 62
Azerbaijan Azerbaijan 4,204,176,471 +5.34% 79
Belgium Belgium 5,321,956,527 +7.32% 69
Benin Benin 5,205,614,709 +4.17% 72
Burkina Faso Burkina Faso 4,321,684,143 +30.2% 77
Bangladesh Bangladesh 50,254,940,951 +4.41% 13
Bulgaria Bulgaria 2,317,622,336 -10.1% 95
Bahamas Bahamas 81,500,000 +17.4% 145
Bosnia & Herzegovina Bosnia & Herzegovina 1,205,856,611 -6.08% 114
Belarus Belarus 5,215,526,377 -0.727% 71
Brazil Brazil 121,604,096,078 -7.86% 5
Brunei Brunei 182,037,760 +2.8% 136
Botswana Botswana 332,194,788 +2.81% 134
Central African Republic Central African Republic 894,147,282 +22.3% 118
Switzerland Switzerland 5,888,174,201 +5.35% 65
Chile Chile 12,921,250,976 +10.3% 40
China China 1,270,079,880,350 +0.901% 1
Côte d’Ivoire Côte d’Ivoire 15,509,987,636 +28.1% 35
Cameroon Cameroon 8,952,473,156 +5.04% 51
Congo - Kinshasa Congo - Kinshasa 12,094,287,765 +3.5% 42
Congo - Brazzaville Congo - Brazzaville 1,484,020,094 +8.2% 110
Colombia Colombia 38,791,398,639 +20.2% 20
Comoros Comoros 566,305,957 +10.1% 128
Cape Verde Cape Verde 129,976,877 +10.5% 140
Costa Rica Costa Rica 3,396,788,401 +3.33% 85
Cyprus Cyprus 428,769,659 +7.31% 131
Czechia Czechia 5,173,013,833 -12.9% 74
Germany Germany 38,504,602,795 +1.05% 21
Djibouti Djibouti 105,567,559 +8.23% 142
Dominica Dominica 84,211,111 +5.47% 144
Denmark Denmark 3,188,438,357 +3.5% 86
Dominican Republic Dominican Republic 5,535,511,934 +7.01% 68
Ecuador Ecuador 11,814,430,700 +22% 43
Egypt Egypt 53,348,334,165 +27.1% 12
Spain Spain 43,741,159,503 +8.01% 17
Estonia Estonia 818,115,113 +2.84% 120
Finland Finland 7,387,246,699 +8.62% 57
Fiji Fiji 488,310,931 -23.5% 129
France France 45,271,970,200 -14.8% 16
Gabon Gabon 1,283,914,869 +1.47% 113
United Kingdom United Kingdom 20,317,872,885 +4.73% 30
Georgia Georgia 1,829,215,412 -1.21% 103
Ghana Ghana 17,163,543,125 +1.75% 33
Guinea Guinea 7,509,408,667 +13.7% 56
Gambia Gambia 605,330,402 +8.78% 127
Guinea-Bissau Guinea-Bissau 780,802,213 +10.5% 123
Equatorial Guinea Equatorial Guinea 402,003,334 +5.33% 133
Greece Greece 8,533,469,215 +4.82% 53
Grenada Grenada 38,256,544 -9.34% 149
Guatemala Guatemala 11,070,840,292 +9.51% 46
Guyana Guyana 1,992,843,616 +20.9% 100
Honduras Honduras 4,161,398,705 +1.12% 80
Croatia Croatia 3,151,851,174 +11.2% 87
Haiti Haiti 4,000,591,529 +15.4% 81
Hungary Hungary 5,285,243,227 -14.9% 70
Indonesia Indonesia 176,054,814,060 +2.48% 4
India India 639,840,041,516 +8.6% 2
Ireland Ireland 6,079,350,095 +25.9% 64
Iran Iran 56,782,621,806 +9.33% 10
Iraq Iraq 9,492,632,385 +13.7% 49
Iceland Iceland 1,353,816,675 +0.496% 111
Israel Israel 6,928,087,917 +5.17% 59
Italy Italy 48,056,393,956 +11.6% 14
Jamaica Jamaica 1,954,064,897 +11.5% 101
Jordan Jordan 2,703,499,296 +9.97% 93
Kazakhstan Kazakhstan 11,350,004,958 +13.3% 45
Kenya Kenya 26,577,958,300 +12.8% 26
Kyrgyzstan Kyrgyzstan 1,504,459,313 +4.4% 109
Cambodia Cambodia 7,683,819,250 +6.27% 55
St. Kitts & Nevis St. Kitts & Nevis 13,911,111 -12.9% 152
Kuwait Kuwait 789,889,616 +1.89% 122
Laos Laos 2,767,852,769 +8.25% 92
Liberia Liberia 1,598,000,000 +5.34% 107
Libya Libya 809,774,745 +1.18% 121
St. Lucia St. Lucia 28,796,296 +5.31% 150
Sri Lanka Sri Lanka 8,213,633,488 +20.8% 54
Lesotho Lesotho 147,637,654 +4.99% 139
Lithuania Lithuania 2,183,899,589 +0.798% 97
Luxembourg Luxembourg 161,255,207 -13.3% 137
Latvia Latvia 1,784,198,129 +7.1% 105
Morocco Morocco 15,578,385,134 -2.51% 34
Moldova Moldova 1,293,414,042 +9.24% 112
Madagascar Madagascar 3,912,344,618 +10% 82
Maldives Maldives 212,561,527 -36.8% 135
Mexico Mexico 69,772,937,108 +1.34% 8
North Macedonia North Macedonia 996,695,412 -4.59% 116
Mali Mali 8,892,492,861 +11.2% 52
Malta Malta 50,547,143 +5,744% 147
Myanmar (Burma) Myanmar (Burma) 15,433,910,710 +1.75% 36
Montenegro Montenegro 416,073,702 +0.967% 132
Mongolia Mongolia 1,741,792,091 -13.6% 106
Mozambique Mozambique 5,886,502,113 +8.42% 66
Mauritania Mauritania 2,005,300,688 +0.444% 99
Mauritius Mauritius 637,126,081 +12.8% 125
Malawi Malawi 3,562,512,795 -7.75% 83
Malaysia Malaysia 34,445,327,108 +10.7% 24
Namibia Namibia 975,005,949 +2.35% 117
Niger Niger 6,605,945,519 +21.7% 61
Nigeria Nigeria 38,215,186,763 -53.8% 22
Nicaragua Nicaragua 2,838,199,835 +3.99% 89
Netherlands Netherlands 20,622,595,071 +3.71% 29
Norway Norway 9,859,449,399 -1.86% 48
Nepal Nepal 9,386,213,890 +7.36% 50
Oman Oman 2,783,615,085 +7.37% 91
Pakistan Pakistan 87,791,797,506 +11.3% 6
Panama Panama 2,222,562,000 +8.87% 96
Peru Peru 17,513,594,847 -9.39% 32
Philippines Philippines 41,926,533,970 +2.05% 18
Papua New Guinea Papua New Guinea 5,581,075,980 +6.79% 67
Poland Poland 23,807,879,003 +5.97% 27
Puerto Rico Puerto Rico 872,700,000 +5.77% 119
Portugal Portugal 6,086,783,884 -0.618% 63
Paraguay Paraguay 4,760,596,779 -4.66% 76
Qatar Qatar 629,670,330 +0.969% 126
Romania Romania 12,542,253,827 -7.78% 41
Russia Russia 59,640,759,950 -3.13% 9
Rwanda Rwanda 3,503,163,342 -8.15% 84
Saudi Arabia Saudi Arabia 31,437,066,667 +4.97% 25
Sudan Sudan 11,018,032,471 -8.79% 47
Senegal Senegal 4,997,405,739 -6.5% 75
Singapore Singapore 150,198,356 +3% 138
Sierra Leone Sierra Leone 1,919,201,035 +2.97% 102
El Salvador El Salvador 1,549,130,000 +2.82% 108
Serbia Serbia 2,804,249,969 -8.96% 90
São Tomé & Príncipe São Tomé & Príncipe 98,131,889 +5.45% 143
Slovakia Slovakia 2,876,429,343 +1.09% 88
Slovenia Slovenia 1,081,676,921 +2.96% 115
Sweden Sweden 7,000,903,225 +20.5% 58
Seychelles Seychelles 53,119,588 -2.72% 146
Turks & Caicos Islands Turks & Caicos Islands 6,138,000 +2.11% 153
Chad Chad 6,631,336,683 -0.961% 60
Togo Togo 1,790,519,368 +7.68% 104
Thailand Thailand 45,876,726,782 +3.85% 15
Turkey Turkey 74,003,695,593 +7.44% 7
Tanzania Tanzania 18,439,828,111 -1.54% 31
Uganda Uganda 13,235,370,764 +12.7% 38
Ukraine Ukraine 13,563,929,019 -0.89% 37
Uruguay Uruguay 5,199,257,741 +9.45% 73
United States United States 248,390,000,000 -9.41% 3
Uzbekistan Uzbekistan 21,068,519,784 +1.78% 28
St. Vincent & Grenadines St. Vincent & Grenadines 41,037,037 -8.89% 148
Vietnam Vietnam 56,516,273,391 +9.82% 11
Samoa Samoa 117,453,372 +14.1% 141
Kosovo Kosovo 770,864,386 +1.99% 124
South Africa South Africa 11,693,737,076 +17.4% 44
Zambia Zambia 473,737,243 -23% 130
Zimbabwe Zimbabwe 2,405,888,501 +66.2% 94

                    
# 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.AGR.TOTL.CD'

# 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.AGR.TOTL.CD'

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