Land under cereal production (hectares)

Source: worldbank.org, 01.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 2,141,199 -9.58% 51
Angola Angola 3,071,528 +0.612% 41
Albania Albania 132,839 -1.12% 130
United Arab Emirates United Arab Emirates 975 -17.7% 164
Argentina Argentina 18,063,791 +6.97% 8
Armenia Armenia 109,574 -5.85% 135
Antigua & Barbuda Antigua & Barbuda 5 0% 178
Australia Australia 19,548,270 -2.49% 6
Austria Austria 754,950 +1% 89
Azerbaijan Azerbaijan 966,183 -2.22% 79
Burundi Burundi 314,390 +1.5% 112
Belgium Belgium 323,070 +4.15% 109
Benin Benin 1,687,377 +2.94% 61
Burkina Faso Burkina Faso 4,301,063 +1.11% 33
Bangladesh Bangladesh 12,496,558 -0.196% 14
Bulgaria Bulgaria 1,900,660 -2.85% 54
Bahamas Bahamas 82 +1.23% 173
Bosnia & Herzegovina Bosnia & Herzegovina 207,036 -34.6% 120
Belarus Belarus 2,288,999 -0.0739% 48
Belize Belize 32,777 +2.92% 144
Bolivia Bolivia 1,523,612 +2.75% 62
Brazil Brazil 27,643,788 +10.5% 5
Barbados Barbados 19 +5.56% 176
Brunei Brunei 1,500 0% 162
Bhutan Bhutan 20,692 -10.9% 149
Botswana Botswana 124,318 +2.05% 131
Central African Republic Central African Republic 354,293 +0.0667% 107
Canada Canada 15,946,200 +4.64% 10
Switzerland Switzerland 142,274 +0.123% 129
Chile Chile 423,377 -9.48% 100
China China 99,268,783 -0.875% 2
Côte d’Ivoire Côte d’Ivoire 1,463,957 +10.8% 64
Cameroon Cameroon 2,269,190 +5.44% 49
Congo - Kinshasa Congo - Kinshasa 4,954,942 +12.2% 32
Congo - Brazzaville Congo - Brazzaville 33,971 +0.159% 143
Colombia Colombia 1,052,640 -1.11% 75
Comoros Comoros 10,953 +3.53% 152
Cape Verde Cape Verde 19,340 -29.9% 151
Costa Rica Costa Rica 30,892 -31.6% 145
Cuba Cuba 151,055 -22.1% 127
Cyprus Cyprus 24,580 -6% 148
Czechia Czechia 1,386,000 +2.98% 65
Germany Germany 6,101,400 +0.8% 29
Djibouti Djibouti 9 0% 177
Dominica Dominica 115 -0.862% 170
Denmark Denmark 1,306,950 -3.87% 69
Dominican Republic Dominican Republic 232,034 +4.6% 118
Algeria Algeria 2,929,807 +50.9% 44
Ecuador Ecuador 722,902 -1.55% 90
Egypt Egypt 3,226,804 +2.54% 39
Eritrea Eritrea 476,652 -0.0736% 99
Spain Spain 5,832,980 -3.34% 30
Estonia Estonia 361,830 -1.44% 105
Ethiopia Ethiopia 11,236,673 +6.18% 16
Finland Finland 977,050 +2.44% 78
Fiji Fiji 3,594 +18.1% 155
France France 9,005,010 -3.44% 21
Micronesia (Federated States of) Micronesia (Federated States of) 166 0% 169
Gabon Gabon 29,410 -0.258% 146
United Kingdom United Kingdom 3,155,713 -1.72% 40
Georgia Georgia 156,939 -1.38% 125
Ghana Ghana 2,051,393 -0.323% 52
Guinea Guinea 2,977,582 -0.833% 43
Gambia Gambia 114,845 +7.82% 132
Guinea-Bissau Guinea-Bissau 206,926 -0.221% 121
Greece Greece 773,280 +0.307% 88
Grenada Grenada 388 +0.518% 166
Guatemala Guatemala 918,199 -5.45% 82
Guyana Guyana 157,154 -1% 124
Hong Kong SAR China Hong Kong SAR China 0 179
Honduras Honduras 400,466 +0.732% 103
Croatia Croatia 519,280 -0.0962% 98
Haiti Haiti 322,147 -8.9% 111
Hungary Hungary 2,247,110 -4.85% 50
Indonesia Indonesia 14,519,903 +8.36% 11
India India 99,558,760 -1.93% 1
Ireland Ireland 285,660 +4% 114
Iran Iran 8,107,539 -10.6% 22
Iraq Iraq 1,179,042 -39.3% 74
Iceland Iceland 3,000 +25% 157
Israel Israel 63,107 -21.1% 139
Italy Italy 3,010,620 +1.08% 42
Jamaica Jamaica 2,086 +9.91% 158
Jordan Jordan 55,039 -17.8% 142
Japan Japan 1,854,217 +5.77% 56
Kazakhstan Kazakhstan 16,004,351 +1.39% 9
Kenya Kenya 2,591,448 -2.87% 45
Kyrgyzstan Kyrgyzstan 588,651 -0.146% 94
Cambodia Cambodia 3,499,434 -3.32% 36
South Korea South Korea 788,395 -1.13% 86
Kuwait Kuwait 1,972 -0.505% 160
Laos Laos 910,959 -6.01% 83
Lebanon Lebanon 55,229 -9.86% 141
Liberia Liberia 257,000 +5.76% 117
Libya Libya 313,402 +0.0108% 113
Sri Lanka Sri Lanka 1,198,727 -2.84% 73
Lesotho Lesotho 113,135 +11.9% 134
Lithuania Lithuania 1,335,720 -1.53% 67
Luxembourg Luxembourg 27,730 +5.4% 147
Latvia Latvia 774,900 +0.925% 87
Morocco Morocco 3,720,619 -17.1% 35
Moldova Moldova 920,175 -2.04% 81
Madagascar Madagascar 1,719,556 -0.56% 59
Maldives Maldives 84 0% 172
Mexico Mexico 9,122,008 -3.28% 20
North Macedonia North Macedonia 156,150 -1.74% 126
Mali Mali 6,157,560 +0.622% 28
Malta Malta 0 179
Myanmar (Burma) Myanmar (Burma) 7,871,589 -2.26% 24
Montenegro Montenegro 2,074 +2.32% 159
Mongolia Mongolia 385,021 -11% 104
Mozambique Mozambique 2,470,196 +6.68% 46
Mauritania Mauritania 322,805 +32.4% 110
Mauritius Mauritius 89 -30.5% 171
Malawi Malawi 2,003,466 -5.13% 53
Malaysia Malaysia 647,426 -1.6% 93
Namibia Namibia 267,470 -17.8% 116
New Caledonia New Caledonia 443 -52.3% 165
Niger Niger 10,627,997 +9.35% 18
Nigeria Nigeria 18,350,981 -0.665% 7
Nicaragua Nicaragua 402,346 +4.63% 102
Netherlands Netherlands 183,200 +7.94% 123
Norway Norway 280,246 -1.03% 115
Nepal Nepal 3,457,671 -0.337% 37
New Zealand New Zealand 113,518 +0.461% 133
Oman Oman 8,420 +24.4% 153
Pakistan Pakistan 14,011,020 -4.71% 12
Panama Panama 146,505 -5.08% 128
Peru Peru 1,217,669 +0.818% 72
Philippines Philippines 7,330,074 -0.536% 25
Papua New Guinea Papua New Guinea 3,863 +0.312% 154
Poland Poland 7,196,910 -3.41% 26
Puerto Rico Puerto Rico 60 -3.23% 174
North Korea North Korea 1,325,807 -2.96% 68
Portugal Portugal 198,180 -5.29% 122
Paraguay Paraguay 1,841,445 +11.7% 57
Palestinian Territories Palestinian Territories 19,437 +58.4% 150
Qatar Qatar 289 -26.3% 167
Romania Romania 5,189,930 -3.12% 31
Russia Russia 44,651,060 +2.74% 4
Rwanda Rwanda 534,338 +0.224% 96
Saudi Arabia Saudi Arabia 213,661 +15.1% 119
Sudan Sudan 9,814,448 -2.07% 19
Senegal Senegal 1,896,411 -0.523% 55
Solomon Islands Solomon Islands 1,447 0% 163
Sierra Leone Sierra Leone 817,626 -24.6% 85
El Salvador El Salvador 358,365 +11.3% 106
Somalia Somalia 353,538 -0.00622% 108
Serbia Serbia 1,732,941 -2.55% 58
South Sudan South Sudan 1,007,211 +1.23% 77
São Tomé & Príncipe São Tomé & Príncipe 260 -10.7% 168
Suriname Suriname 55,948 -1.62% 140
Slovakia Slovakia 711,490 -0.864% 91
Slovenia Slovenia 103,550 +1.47% 136
Sweden Sweden 953,470 -3.04% 80
Eswatini Eswatini 81,701 +14% 137
Syria Syria 2,396,243 -21.8% 47
Chad Chad 3,310,037 +2.86% 38
Togo Togo 1,233,007 +0.978% 71
Thailand Thailand 12,847,242 +2.61% 13
Tajikistan Tajikistan 405,424 +7.6% 101
Turkmenistan Turkmenistan 652,359 -9.91% 92
Timor-Leste Timor-Leste 79,665 -5.68% 138
Trinidad & Tobago Trinidad & Tobago 3,130 -7.01% 156
Tunisia Tunisia 1,044,557 -9.68% 76
Turkey Turkey 11,160,157 +2.22% 17
Tanzania Tanzania 6,447,519 -11.1% 27
Uganda Uganda 1,693,350 +0.293% 60
Ukraine Ukraine 11,602,583 -25.9% 15
Uruguay Uruguay 892,319 +21.2% 84
United States United States 50,911,502 -6.98% 3
Uzbekistan Uzbekistan 1,511,057 -0.589% 63
St. Vincent & Grenadines St. Vincent & Grenadines 28 +3.7% 175
Venezuela Venezuela 552,140 -16.2% 95
Vietnam Vietnam 7,975,473 -1.8% 23
Vanuatu Vanuatu 1,523 +0.462% 161
Yemen Yemen 521,000 -9.66% 97
South Africa South Africa 3,764,268 -2.39% 34
Zambia Zambia 1,243,883 -20.6% 70
Zimbabwe Zimbabwe 1,337,244 +1.13% 66

                    
# 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 = 'AG.LND.CREL.HA'

# 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 <- 'AG.LND.CREL.HA'

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