A study conducted by the World Health Organization (WHO) in 2018 reveals that inequality is the primary driver of violence. In low-an-middle income countries, women annually report rates of violence that are up to three times greater than those living in the most developed countries.
Let’s use data from the WHO Global Health Observatory to figure out what countries have the highest prevalence rates of intimate partner violence among women aged 15-49. Consider two indicators:
In most cases, the only way is to use a geocoder. It takes strings as input, such as addresses, and returns georeferenced locations. However, there is no free lunch. The name of the places can correspond to more than one location, such as Georgia (USA Federal State and country located in the Caucasus), and territories with controversial international recognition (Kosovo under UNSCR 1244, Palestinian territories, Hong Kong…) are hardly ever decoded correctly. What to do then? In general, providing more information to the geocoder ensure a better result. In the Georgia case, adding subregions to the query solve the issue.
In some lucky cases (as this very one), when data have no geometry but the country codes (ISO), we can use plotly
, a fancy library that creates great interactive maps.
Let’s begin by importing the required modules:
# Import required modules
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
Read data:
df12M = pd.read_csv("data/WHO_vaw_previous12months.csv")
dfLFT = pd.read_csv('data/WHO_vaw_lifetime.csv')
Merge indicators into a single dataFrame:
df = pd.merge(df12M, dfLFT, on= 'SpatialDimValueCode', how='outer',suffixes=('_last12M','_lifetime'))
df.head(3)
IndicatorCode_last12M | Indicator_last12M | ValueType_last12M | ParentLocationCode_last12M | ParentLocation_last12M | Location type_last12M | SpatialDimValueCode | Location_last12M | Period type_last12M | Period_last12M | ... | FactValueUoM_lifetime | FactValueNumericLowPrefix_lifetime | FactValueNumericLow_lifetime | FactValueNumericHighPrefix_lifetime | FactValueNumericHigh_lifetime | Value_lifetime | FactValueTranslationID_lifetime | FactComments_lifetime | Language_lifetime | DateModified_lifetime | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | SDGIPV12M | Proportion of ever-partnered women and girls a... | numeric | AMR | Americas | Country | DOM | Dominican Republic | Year | 2018.0 | ... | NaN | NaN | 29.0 | NaN | 13.0 | 19 [29 – 13] | NaN | NaN | EN | 2021-05-05T21:00:00.000Z |
1 | SDGIPV12M | Proportion of ever-partnered women and girls a... | numeric | AMR | Americas | Country | MEX | Mexico | Year | 2018.0 | ... | NaN | NaN | 35.0 | NaN | 16.0 | 24 [35 – 16] | NaN | NaN | EN | 2021-05-05T21:00:00.000Z |
2 | SDGIPV12M | Proportion of ever-partnered women and girls a... | numeric | WPR | Western Pacific | Country | VNM | Viet Nam | Year | 2018.0 | ... | NaN | NaN | 38.0 | NaN | 15.0 | 25 [38 – 15] | NaN | NaN | EN | 2021-05-05T21:00:00.000Z |
3 rows × 67 columns
Create Choropleth Map:
fig = px.choropleth(df, locations= 'SpatialDimValueCode', color = 'FactValueNumeric_lifetime',
hover_name='Location_lifetime',
hover_data={'FactValueNumeric_lifetime' : True ,
'FactValueNumeric_last12M' : True,
'SpatialDimValueCode' : False
},
labels={'FactValueNumeric_lifetime':'Lifetime (%)',
'FactValueNumeric_last12M' : 'Past Year (%)'
}
)
fig.update_layout(
title = go.layout.Title(
text = 'Women subjected to violence by an intimate partner <br> at least once in their lifetime (%)'),
title_x=0.5,
hoverlabel=dict(
bgcolor="white",
font_size=14,
font_family="Rockwell"
),
geo = go.layout.Geo(
showframe = True,
showcountries=True, countrycolor = "white",
showocean = True, oceancolor = '#c9d2e0',
coastlinecolor = "white",
projection_type = 'natural earth'),
)
config = dict({'displayModeBar': False})
#fig.show(config=config)
#fig.write_html("output/VAW_in_World.html",config=config)
States are correctly displayed and data easily turned into informative interactive content.
As the figure shows, VAW is widespread with a higher prevalence in least developed countries. However, a recent UN WOMAN report states that the phenomenon is largely underreported, both in stable and emergency contexts, revealing that data collection on the issue is difficult and data themselves often miss the whole picture.
In Mexico, twenty-four per cent of women aged 15 to 49 have been subject to physical and/or sexual intimate partner violence in their life, ten per cent in the past 12 months. Overall, Mexico scores a high rate of violence against women, but similar to countries in the region, confirming that enormous efforts must be made across Latin America and the Caribbean to eradicate violence against women.
In the next step, I’ll focus on how to map prevalence of violence against women in Mexico City.