Prevalence of anemia among non-pregnant women (% of women ages 15-49)

Source: worldbank.org, 03.09.2025

Year: 2023

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 46.9 +2.18% 8
Angola Angola 43.6 +0.461% 17
Albania Albania 24.6 +2.93% 86
Andorra Andorra 16.4 +3.8% 123
United Arab Emirates United Arab Emirates 28.2 +0.714% 67
Argentina Argentina 23.5 +3.07% 92
Armenia Armenia 18.6 +2.2% 114
Antigua & Barbuda Antigua & Barbuda 20.2 +3.06% 110
Australia Australia 11 +6.8% 141
Austria Austria 16.7 +3.73% 120
Azerbaijan Azerbaijan 35.6 +0.85% 35
Burundi Burundi 38.4 +4.35% 27
Belgium Belgium 15.1 +4.86% 130
Benin Benin 49 +1.03% 6
Burkina Faso Burkina Faso 43.9 +1.62% 16
Bangladesh Bangladesh 37.5 +1.9% 30
Bulgaria Bulgaria 25.8 +3.2% 78
Bahrain Bahrain 38.7 +0.259% 26
Bahamas Bahamas 18.6 +2.2% 114
Bosnia & Herzegovina Bosnia & Herzegovina 26 +2.77% 76
Belarus Belarus 22.1 +3.27% 98
Belize Belize 21.1 +3.94% 105
Bolivia Bolivia 24.9 +1.22% 84
Brazil Brazil 21.2 +1.92% 104
Barbados Barbados 19.9 +2.58% 111
Brunei Brunei 18.2 +4% 116
Bhutan Bhutan 33.8 +2.74% 42
Botswana Botswana 30.9 +2.66% 54
Central African Republic Central African Republic 42.6 +0.709% 19
Canada Canada 14 +6.06% 134
Switzerland Switzerland 16.7 +3.73% 120
Chile Chile 15.6 +6.12% 127
China China 15.6 +1.96% 127
Côte d’Ivoire Côte d’Ivoire 50.8 +1.2% 5
Cameroon Cameroon 38.7 +1.31% 26
Congo - Kinshasa Congo - Kinshasa 39.3 +0.769% 25
Congo - Brazzaville Congo - Brazzaville 46.7 -0.214% 9
Colombia Colombia 22.2 +4.23% 97
Comoros Comoros 29.4 +2.08% 62
Cape Verde Cape Verde 40.5 +0.496% 23
Costa Rica Costa Rica 13.5 +6.3% 136
Cuba Cuba 22.1 +3.76% 98
Cyprus Cyprus 16.4 +4.46% 123
Czechia Czechia 24.6 +2.93% 86
Germany Germany 13.9 +5.3% 135
Djibouti Djibouti 31.5 +2.61% 51
Dominica Dominica 21.9 +3.3% 100
Denmark Denmark 17 +4.29% 118
Dominican Republic Dominican Republic 22.2 +3.26% 97
Algeria Algeria 31.4 +1.95% 52
Ecuador Ecuador 19.9 +2.58% 111
Egypt Egypt 32.5 +2.85% 47
Eritrea Eritrea 35.2 +2.62% 37
Spain Spain 15.6 +4% 127
Estonia Estonia 24.7 +2.92% 85
Ethiopia Ethiopia 22.9 +5.05% 95
Finland Finland 13.5 +4.65% 136
Fiji Fiji 29.9 +2.05% 60
France France 13 +5.69% 137
Micronesia (Federated States of) Micronesia (Federated States of) 21.8 +3.32% 101
Gabon Gabon 60.3 +0.333% 1
United Kingdom United Kingdom 13.5 +3.05% 136
Georgia Georgia 30.2 +1.34% 58
Ghana Ghana 35.3 0% 36
Guinea Guinea 45.3 +1.12% 14
Gambia Gambia 45.4 -0.439% 13
Guinea-Bissau Guinea-Bissau 45.3 +0.891% 14
Equatorial Guinea Equatorial Guinea 41.1 +0.244% 22
Greece Greece 15.6 +4.7% 127
Grenada Grenada 20.7 +2.99% 107
Guatemala Guatemala 10 +7.53% 142
Guyana Guyana 37.8 +0.8% 29
Honduras Honduras 18.5 +5.11% 115
Croatia Croatia 23.3 +2.64% 93
Haiti Haiti 46 +1.77% 11
Hungary Hungary 24.1 +3.43% 89
Indonesia Indonesia 26.7 +0.755% 73
India India 54 +1.12% 4
Ireland Ireland 14 +3.7% 134
Iran Iran 25.5 +3.66% 80
Iraq Iraq 26.7 +1.52% 73
Iceland Iceland 14.7 +4.26% 132
Israel Israel 14.6 +4.29% 133
Italy Italy 16.3 +3.82% 124
Jamaica Jamaica 21.4 +3.88% 103
Jordan Jordan 33 +1.23% 45
Japan Japan 18.6 +1.09% 114
Kazakhstan Kazakhstan 30.4 +1.33% 56
Kenya Kenya 31.7 +3.26% 50
Kyrgyzstan Kyrgyzstan 32.4 +0.621% 48
Cambodia Cambodia 37.8 +0.8% 29
Kiribati Kiribati 26.8 +2.68% 72
St. Kitts & Nevis St. Kitts & Nevis 19.3 +3.21% 113
South Korea South Korea 15.7 +3.29% 126
Kuwait Kuwait 27.6 +1.1% 68
Laos Laos 28.5 +1.06% 66
Lebanon Lebanon 34 +2.41% 41
Liberia Liberia 42 +1.94% 21
Libya Libya 29.2 +1.74% 64
St. Lucia St. Lucia 19.7 +2.6% 112
Sri Lanka Sri Lanka 20.9 -0.948% 106
Lesotho Lesotho 34.1 +5.25% 40
Lithuania Lithuania 23.7 +3.04% 90
Luxembourg Luxembourg 15.4 +4.05% 129
Latvia Latvia 21.4 +1.9% 103
Morocco Morocco 29.3 +2.09% 63
Monaco Monaco 15.9 +3.92% 125
Moldova Moldova 28.6 +3.25% 65
Madagascar Madagascar 37 +2.21% 33
Maldives Maldives 43.5 +0.462% 18
Mexico Mexico 12.7 +4.96% 138
Marshall Islands Marshall Islands 23.3 +1.75% 93
North Macedonia North Macedonia 21.4 +3.88% 103
Mali Mali 55.8 +1.09% 2
Malta Malta 15.7 +3.97% 126
Myanmar (Burma) Myanmar (Burma) 39.5 +3.13% 24
Montenegro Montenegro 25.7 +3.63% 79
Mongolia Mongolia 18.6 +1.64% 114
Mozambique Mozambique 46.1 +1.1% 10
Mauritania Mauritania 54.5 +1.11% 3
Mauritius Mauritius 32.8 +4.79% 46
Malawi Malawi 31.9 +3.57% 49
Malaysia Malaysia 31.4 0% 52
Namibia Namibia 24.7 +5.11% 85
Niger Niger 45.9 +1.55% 12
Nigeria Nigeria 37.2 -0.535% 31
Netherlands Netherlands 16.5 +3.13% 122
Norway Norway 16.3 +3.82% 124
Nepal Nepal 33.2 +1.53% 44
Nauru Nauru 22.3 +2.76% 96
New Zealand New Zealand 12.3 +4.24% 139
Oman Oman 34.4 +1.18% 39
Pakistan Pakistan 47.1 +0.641% 7
Panama Panama 25.4 +3.67% 81
Peru Peru 20.7 +3.5% 107
Philippines Philippines 11.6 -1.69% 140
Palau Palau 25.9 +2.37% 77
Papua New Guinea Papua New Guinea 28.6 +2.51% 65
Poland Poland 23.3 +3.1% 93
North Korea North Korea 27.4 +1.11% 70
Portugal Portugal 15 +4.9% 131
Paraguay Paraguay 23 +3.6% 94
Palestinian Territories Palestinian Territories 24.3 +1.67% 88
Qatar Qatar 23.6 -0.422% 91
Romania Romania 24.3 +2.97% 88
Russia Russia 24.1 +2.99% 89
Rwanda Rwanda 15.5 +4.73% 128
Saudi Arabia Saudi Arabia 17.4 +0.578% 117
Sudan Sudan 33.7 +1.81% 43
Senegal Senegal 42.4 -0.235% 20
Singapore Singapore 16.6 +3.75% 121
Solomon Islands Solomon Islands 32.5 +2.52% 47
Sierra Leone Sierra Leone 43.9 +0.92% 16
El Salvador El Salvador 14 +5.26% 134
San Marino San Marino 15.7 +3.97% 126
Somalia Somalia 45.2 +1.35% 15
Serbia Serbia 24.9 +2.89% 84
South Sudan South Sudan 34.4 +2.69% 39
São Tomé & Príncipe São Tomé & Príncipe 39.5 +0.765% 24
Suriname Suriname 22 +3.77% 99
Slovakia Slovakia 25.3 +3.27% 82
Slovenia Slovenia 25.7 +3.21% 79
Sweden Sweden 16.8 +3.7% 119
Eswatini Eswatini 28.2 +3.68% 67
Seychelles Seychelles 25.7 +2.8% 79
Syria Syria 30.8 +1.65% 55
Chad Chad 45.9 +0.658% 12
Togo Togo 40.5 +1.25% 23
Thailand Thailand 20.6 +0.488% 108
Tajikistan Tajikistan 37.1 +1.64% 32
Turkmenistan Turkmenistan 34.7 +1.17% 38
Timor-Leste Timor-Leste 29.6 +2.42% 61
Tonga Tonga 20.6 +3% 108
Trinidad & Tobago Trinidad & Tobago 22 +3.29% 99
Tunisia Tunisia 27.5 +1.48% 69
Turkey Turkey 29.2 +1.04% 64
Tuvalu Tuvalu 23 +3.6% 94
Tanzania Tanzania 38.1 +1.87% 28
Uganda Uganda 26.4 +3.12% 74
Ukraine Ukraine 19.3 +5.46% 113
Uruguay Uruguay 24.5 +3.38% 87
United States United States 15.1 +5.59% 130
Uzbekistan Uzbekistan 30 +1.35% 59
St. Vincent & Grenadines St. Vincent & Grenadines 18.6 +2.76% 114
Venezuela Venezuela 25.1 +3.29% 83
Vietnam Vietnam 20.4 +3.03% 109
Vanuatu Vanuatu 30.3 +2.71% 57
Samoa Samoa 21.7 +2.84% 102
Yemen Yemen 35.9 +1.7% 34
South Africa South Africa 31.3 +2.96% 53
Zambia Zambia 26.2 +1.55% 75
Zimbabwe Zimbabwe 27.3 +3.02% 71

The prevalence of anemia among non-pregnant women aged 15-49 is a crucial indicator of public health, reflecting broader issues related to nutrition, healthcare access, and socioeconomic conditions. Anemia, defined as a deficiency in the number or quality of red blood cells, can severely impact women's health, leading to fatigue, weakness, and reduced physical and cognitive capabilities. This condition is particularly critical among women within the reproductive age, as it can affect their overall well-being and, if they become pregnant, the health outcomes for their children.

The importance of monitoring the prevalence of anemia lies in its correlations to various other health and socioeconomic indicators. High rates of anemia often accompany high rates of poverty, limited access to healthcare, and inadequate nutritional education. Thus, this indicator not only serves as a direct measure of women's health but also as a reflective tool for assessing the overall health infrastructure and socioeconomic conditions of a region. For example, in countries with high rates of anemia, such as Yemen and Mali, we frequently observe intertwined challenges like malnutrition, limited access to iron-rich foods, and insufficient healthcare resources.

Among the statistics for 2019, the median value of anemia prevalence stood at 24.85%. This figure indicates a significant public health concern, especially when comparing it to the data from previous years, which showed that the global prevalence of anemia among women in this demographic has been consistently high since 2000. For instance, in 2000, the prevalence was noted at 30.7%, and while it saw a gradual decline through to 2019, where it reached 29.6%, the decline is not substantial enough to proclaim a victory against the war on anemia.

Focusing on geographical disparities reveals stark contrasts worldwide. The top five areas with the highest reported prevalence of anemia among non-pregnant women all exceed 50%, highlighting the acute nature of the problem in these regions. Yemen leads at an alarming 61.8%, followed by Mali at 59.0%, Nigeria at 55.0%, Benin at 54.8%, and India at 53.1%. These figures suggest multifactorial causes, including poor dietary intake, epigenetic factors, infection prevalence (especially malaria and hookworm), and socio-economic barriers that impede access to essential healthcare services.

Conversely, the bottom five areas reveal a much more favorable situation, with Guatemala at only 7.0%, Australia at 8.2%, Chile at 8.4%, Iceland at 10.1%, and Luxembourg also at 10.1%. The stark difference between the high-prevalence and low-prevalence regions indicates that solutions are available and that socioeconomic development, public health initiatives, and nutrition education can substantially influence outcomes. Factors affecting anemia are multifaceted. Nutritional inadequacies, particularly iron-deficiency anemia, contribute significantly, exacerbated by absorption issues in the gut due to intestinal parasites, chronic infections, and genetic conditions such as thalassemia and sickle cell anemia.

Strategies to combat anemia focus primarily on improving access to nutrition and healthcare services. Governments and organizations can implement programs aimed at increasing the availability of iron-rich foods and supplements. Education plays a key role as well; fostering community awareness around proper nutrition and how to identify food sources of iron and vitamins can empower women to make informed dietary choices.

Moreover, regular health screenings and anemia management programs, especially in high-prevalence areas, must be prioritized. Collaboration with local healthcare providers to ensure access to medical treatment for underlying causes, such as infections or menstrual disorders, is likewise critical. Public health campaigns that encourage routine check-ups and the importance of iron intake can significantly reduce the prevalence of anemia over time.

Despite these strategies, there are inherent flaws and challenges in effectively addressing anemia. Proposals must consider cultural perceptions of health and nutrition, as well as the economic realities that limit access to diverse diets rich in essential nutrients. Political instability in certain regions hampers the delivery of health services and creates barriers to effective public health interventions. Additionally, the apathy to anemia may result in underdiagnosis or misdiagnosis, further exacerbating the problem.

A holistic approach is vital to overcome these challenges. This includes cross-sector partnerships that integrate health, education, and food security initiatives. Addressing anemia requires a commitment from governmental and non-governmental organizations, community leaders, and women themselves to collaboratively strive for better health outcomes. By continuing to monitor and analyze anemia prevalence, countries can tailor strategies that not only address the immediate needs of non-pregnant women but also contribute to more robust health systems and improved quality of life across generations.

In summary, the prevalence of anemia among non-pregnant women aged 15-49 reveals a significant public health issue that is both a consequence and a predictor of socio-economic challenges. By harmonizing efforts across sectors and focusing on effective implementation of nutrition and healthcare solutions, significant progress can be made to mitigate this pervasive problem.

                    
# 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 = 'SH.ANM.NPRG.ZS'

# 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 <- 'SH.ANM.NPRG.ZS'

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