{
"cells": [
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"df1=pd.read_csv('Dataset1_Syria Archive.csv',header=None,names=['URL','title','summary','date','time','location','weapon','collection','violation'])\n",
"df2 = pd.read_csv('Dataset2_Violations Documentation Center in Syria.csv', header=None, names=['name', 'status', 'sex', 'province', 'area','date', 'cause of death','actors'])"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" URL | \n",
" title | \n",
" summary | \n",
" date | \n",
" time | \n",
" location | \n",
" weapon | \n",
" collection | \n",
" violation | \n",
" location_clean | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" https://syrianarchive.org/en/database?after=20... | \n",
" Russian aircrafts commit a massacre in Kafar H... | \n",
" Russian aircrafts commit a massacre in Kafar H... | \n",
" 2016-02-27 | \n",
" 3:16:24 | \n",
" ALEPPO : Kafr hamrah | \n",
" NaN | \n",
" Civilian casualties as a result of alleged rus... | \n",
" Unlawful attacks | \n",
" ALEPPO | \n",
"
\n",
" \n",
" 1 | \n",
" https://syrianarchive.org/en/database?after=20... | \n",
" #Witness: 8 killed by Russian airstrikes on th... | \n",
" #Witness: 8 killed by Russian airstrikes on th... | \n",
" 2016-02-27 | \n",
" 6:03:25 | \n",
" ALEPPO : Kafr hamrah | \n",
" NaN | \n",
" Civilian casualties as a result of alleged rus... | \n",
" Unlawful attacks | \n",
" ALEPPO | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" URL \\\n",
"0 https://syrianarchive.org/en/database?after=20... \n",
"1 https://syrianarchive.org/en/database?after=20... \n",
"\n",
" title \\\n",
"0 Russian aircrafts commit a massacre in Kafar H... \n",
"1 #Witness: 8 killed by Russian airstrikes on th... \n",
"\n",
" summary date time \\\n",
"0 Russian aircrafts commit a massacre in Kafar H... 2016-02-27 3:16:24 \n",
"1 #Witness: 8 killed by Russian airstrikes on th... 2016-02-27 6:03:25 \n",
"\n",
" location weapon \\\n",
"0 ALEPPO : Kafr hamrah NaN \n",
"1 ALEPPO : Kafr hamrah NaN \n",
"\n",
" collection violation \\\n",
"0 Civilian casualties as a result of alleged rus... Unlawful attacks \n",
"1 Civilian casualties as a result of alleged rus... Unlawful attacks \n",
"\n",
" location_clean \n",
"0 ALEPPO \n",
"1 ALEPPO "
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1[:2]"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" name | \n",
" status | \n",
" sex | \n",
" province | \n",
" area | \n",
" date | \n",
" cause of death | \n",
" actors | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Abdulla Riyad Hammash | \n",
" Non-Civilian | \n",
" Adult - Male | \n",
" Idlib | \n",
" Jisr Shagour: Najieh | \n",
" 2016-02-26 | \n",
" Shooting | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" Muhannad Abo Wiliam | \n",
" Non-Civilian | \n",
" Adult - Male | \n",
" Damascus Suburbs | \n",
" Daraya | \n",
" 2016-02-26 | \n",
" Shooting | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" name status sex province \\\n",
"0 Abdulla Riyad Hammash Non-Civilian Adult - Male Idlib \n",
"1 Muhannad Abo Wiliam Non-Civilian Adult - Male Damascus Suburbs \n",
"\n",
" area date cause of death actors \n",
"0 Jisr Shagour: Najieh 2016-02-26 Shooting NaN \n",
"1 Daraya 2016-02-26 Shooting NaN "
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[:2]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Part 1 Data Analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Clean and analyse locations in the first dataset from Syrian Archive"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"ALEPPO 1920\n",
"IDLIB 219\n",
"HAMA 103\n",
"DAMASCUS 97\n",
"nan 41\n",
"HOMS 39\n",
"DARAA 9\n",
"LATTAKIA 2\n",
"حلب 1\n",
"Name: location_clean, dtype: int64"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def clean_location(r):\n",
" return str(r).split(':')[0]\n",
"df1['location_clean']=df1['location'].apply(clean_location)\n",
"df1['location_clean'].apply(str).value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [],
"source": [
"#replace \"حلب\" with \"missing value\"\n",
"df_media_location=pd.DataFrame({'location':['Aleppo','Idlib','Hama','Damascus','NaN','Homs','Daraa','Lattakia','missing value'],'number':[1920,219,103,97,41,39,9,2,1]})\n",
"#calculate the distribution of locations\n",
"total=0\n",
"percentage=[]\n",
"for i in df_media_location['number']:\n",
" total=total+i\n",
"for i in df_media_location['number']:\n",
" percentage.append(i/total)\n",
"df_media_location['percentage']=pd.Series(percentage)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Clean and analyse death causes in the first dataset from Syrian Archive"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian casualties as a result of alleged russian attacks 230\n",
"Chemical weapons 139\n",
"Attacks against hospitals 92\n",
"Chemical Weapons 11\n",
"Attacks against schools 9\n",
"Attacks against hospitals, Chemical weapons 8\n",
"Attacks against humanitarian relief personnel and objects 5\n",
"Civilian casualties as a result of alleged russian attacks, Attacks against hospitals 3\n",
"Attacks against hospitals, Attacks against humanitarian relief personnel and objects 2\n",
"Attacks against bakeries 1\n",
"Attacks against journalists 1\n",
"Name: collection, dtype: int64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"death_cause=df1['collection'].value_counts()\n",
"death_cause"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"death_cause_media=pd.DataFrame({'cause':['Civilian casualties as a result of alleged russian attacks',\n",
" 'Chemical weapons','Attacks against hospitals',\n",
" 'Attacks against schools',\n",
" 'Attacks against humanitarian relief personnel and objects',\n",
" \"Attacks against bakeries\",\n",
" \"Attacks against journalists\"],\n",
" 'number':[233,158,105,9,7,1,1]})\n",
"#calculate the distribution of locations\n",
"total=0\n",
"percentage=[]\n",
"for i in death_cause_media['number']:\n",
" total=total+i\n",
"for i in death_cause_media['number']:\n",
" percentage.append(i/total)\n",
"death_cause_media['percentage']=pd.Series(percentage)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Clean and analyse locations in the second dataset from Violation Documentation Center in Syria"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" location | \n",
" number | \n",
" percentage | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Aleppo | \n",
" 7990 | \n",
" 0.260660 | \n",
"
\n",
" \n",
" 1 | \n",
" Damascus Suburbs | \n",
" 6372 | \n",
" 0.207875 | \n",
"
\n",
" \n",
" 2 | \n",
" Idlib | \n",
" 4434 | \n",
" 0.144651 | \n",
"
\n",
" \n",
" 3 | \n",
" Deir Ezzor | \n",
" 2904 | \n",
" 0.094738 | \n",
"
\n",
" \n",
" 4 | \n",
" Homs | \n",
" 2304 | \n",
" 0.075164 | \n",
"
\n",
" \n",
" 5 | \n",
" Daraa | \n",
" 2231 | \n",
" 0.072782 | \n",
"
\n",
" \n",
" 6 | \n",
" Hama | \n",
" 1856 | \n",
" 0.060549 | \n",
"
\n",
" \n",
" 7 | \n",
" Raqqa | \n",
" 1327 | \n",
" 0.043291 | \n",
"
\n",
" \n",
" 8 | \n",
" Damascus | \n",
" 601 | \n",
" 0.019607 | \n",
"
\n",
" \n",
" 9 | \n",
" Other Nationalities | \n",
" 139 | \n",
" 0.004535 | \n",
"
\n",
" \n",
" 10 | \n",
" Quneitra | \n",
" 121 | \n",
" 0.003947 | \n",
"
\n",
" \n",
" 11 | \n",
" Hasakeh | \n",
" 105 | \n",
" 0.003425 | \n",
"
\n",
" \n",
" 12 | \n",
" Lattakia | \n",
" 103 | \n",
" 0.003360 | \n",
"
\n",
" \n",
" 13 | \n",
" Unknown | \n",
" 83 | \n",
" 0.002708 | \n",
"
\n",
" \n",
" 14 | \n",
" Tartous | \n",
" 48 | \n",
" 0.001566 | \n",
"
\n",
" \n",
" 15 | \n",
" Sweida | \n",
" 35 | \n",
" 0.001142 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" location number percentage\n",
"0 Aleppo 7990 0.260660\n",
"1 Damascus Suburbs 6372 0.207875\n",
"2 Idlib 4434 0.144651\n",
"3 Deir Ezzor 2904 0.094738\n",
"4 Homs 2304 0.075164\n",
"5 Daraa 2231 0.072782\n",
"6 Hama 1856 0.060549\n",
"7 Raqqa 1327 0.043291\n",
"8 Damascus 601 0.019607\n",
"9 Other Nationalities 139 0.004535\n",
"10 Quneitra 121 0.003947\n",
"11 Hasakeh 105 0.003425\n",
"12 Lattakia 103 0.003360\n",
"13 Unknown 83 0.002708\n",
"14 Tartous 48 0.001566\n",
"15 Sweida 35 0.001142"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_fact_location=df2['province'].value_counts().to_frame()\n",
"df_fact_location=df_fact_location.reset_index()\n",
"df_fact_location.columns=['location','number']\n",
"total=0\n",
"percentage=[]\n",
"for i in df_fact_location['number']:\n",
" total=total+i\n",
"for i in df_fact_location['number']:\n",
" percentage.append(i/total)\n",
"df_fact_location['percentage']=pd.Series(percentage)\n",
"df_fact_location"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/p17417864/Desktop/venv/lib/python3.6/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
" \n",
"/Users/p17417864/Desktop/venv/lib/python3.6/site-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
" This is separate from the ipykernel package so we can avoid doing imports until\n"
]
}
],
"source": [
"#As shown above, \"Damascus Suburbs\" can be merged into \"Damascus\".\n",
"df_fact_location['number'][8]=df_fact_location['number'][8]+df_fact_location['number'][1]\n",
"df_fact_location['percentage'][8]=df_fact_location['percentage'][8]+df_fact_location['percentage'][1]\n",
"df_fact_location=df_fact_location.drop(1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Clean and analyse death causes in the second dataset from Violation Documentation Center in Syria"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Warplane shelling 12926\n",
"Shooting 8348\n",
"Shelling 4789\n",
"Explosion 2353\n",
"Field Execution 487\n",
"Detention - Torture 465\n",
"Kidnapping - Execution 387\n",
"Unknown 257\n",
"Chemical and toxic gases 226\n",
"Other 120\n",
"Detention - Execution 117\n",
"Siege 93\n",
"Un-allowed to seek Medical help 39\n",
"Kidnapping - Torture 31\n",
"Kidnapping - Torture - Execution 9\n",
"Detention - Torture - Execution 6\n",
"Name: cause of death, dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2['cause of death'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Merge \"Detention - Torture\", \"Kidnapping - Execution\", \"Detention - Execution\", \"Kidnapping - Torture\", \"Kidnapping - Torture - Execution\" ,\"Detention - Torture - Execution\" into \"mixed\" "
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [],
"source": [
"death_cause_fact=pd.DataFrame({'cause':['Warplane shelling', \n",
" 'Shooting', \n",
" 'Shelling', \n",
" 'Explosion',\n",
" 'Field Execution', \n",
" 'Unknown', \n",
" 'Chemical and toxic gases', \n",
" 'Other', \n",
" 'Siege',\n",
" 'Un-allowed to seek Medical help',\n",
" 'mixed'],\n",
" 'number':[12926,8348,4789,2353,487,257,226,120,93,39,976]})"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [],
"source": [
"total=0\n",
"percentage=[]\n",
"for i in death_cause_fact['number']:\n",
" total=total+i\n",
"for i in death_cause_fact['number']:\n",
" percentage.append(i/total)\n",
"death_cause_fact['percentage']=pd.Series(percentage)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analyse casualties of civilian and non-civilian caused by different actors"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Syrian government and affiliated militias 15580\n",
"Russian troops 3808\n",
"The organization of the Islamic State in Iraq and the Levant - ISIS 3102\n",
"Not identified 2696\n",
"International coalition forces 2059\n",
"Armed opposition groups 1634\n",
"Self administration forces 582\n",
"Al-Nusra Front 112\n",
"Name: actors, dtype: int64"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"emmm=df2['actors'].value_counts()\n",
"emmm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Apart from \"Not identified\", we chose to casualties of civilian and non-civilian caused by top 5 actors, namely \"Syrian government and affiliated militias\", \"Russian troops\", \"ISIS\", \"International coalition forces\", \"Armed opposition groups\"."
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian 10324\n",
"Non-Civilian 5256\n",
"Name: status, dtype: int64"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[df2['actors']=='Syrian government and affiliated militias']['status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian 3651\n",
"Non-Civilian 157\n",
"Name: status, dtype: int64"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[df2['actors']=='Russian troops']['status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian 1950\n",
"Non-Civilian 1152\n",
"Name: status, dtype: int64"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[df2['actors']=='The organization of the Islamic State in Iraq and the Levant - ISIS']['status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian 1905\n",
"Non-Civilian 154\n",
"Name: status, dtype: int64"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[df2['actors']=='International coalition forces']['status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Civilian 821\n",
"Non-Civilian 813\n",
"Name: status, dtype: int64"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2[df2['actors']=='Armed opposition groups']['status'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [],
"source": [
"actors_status=pd.DataFrame({'actors':['Syrian government and affiliated militias', \n",
" 'Syrian government and affiliated militias', \n",
" 'Russian troops', \n",
" 'Russian troops',\n",
" 'ISIS', \n",
" 'ISIS', \n",
" 'International coalition forces', \n",
" 'International coalition forces', \n",
" 'Armed opposition groups',\n",
" 'Armed opposition groups'],\n",
" 'status':['Civilian','Non-Civilian',\n",
" 'Civilian','Non-Civilian',\n",
" 'Civilian','Non-Civilian',\n",
" 'Civilian','Non-Civilian',\n",
" 'Civilian','Non-Civilian'],\n",
" 'number':[10324,5256,3651,157,1950,1152,1905,154,821,813]})"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [],
"source": [
"percentage=[]\n",
"for i in range(5):\n",
" percentage.append(actors_status['number'][2*i]/emmm.values[i])\n",
" percentage.append(actors_status['number'][2*i+1]/emmm.values[i])\n",
"actors_status['percentage']=pd.Series(percentage)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Part 2 Data Visualisation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Comparing location distribution in two datasets"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df_fact_location=df_fact_location.sort_values(by='percentage',ascending=True)[7:15]"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 1)"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig=plt.figure(figsize=(7,3.5))\n",
"plt.barh(df_fact_location['location'].values,df_fact_location['percentage'].apply(float).values,\n",
" color=['#cccccc','#cccccc','#cccccc','#cccccc','#b30000','#b30000','#b30000','#b30000'])\n",
"plt.title('location distribution in the second dataset',fontsize=20)\n",
"plt.xlim(range(2))\n",
"plt.savefig('location_fact.png')"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 1)"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig=plt.figure(figsize=(7,3.5))\n",
"plt.barh(df_fact_location['location'].values,[0,0.042369,0.003702,0.016043,0,0.090086,0.039901,0.789798],\n",
" color=['#cccccc','#b30000','#cccccc','#cccccc','#cccccc','#b30000','#b30000','#b30000'])\n",
"plt.title('location distribution in the first dataset',fontsize=20)\n",
"plt.xlim(range(2))\n",
"plt.savefig('location_media.png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use photoshop to refine the two graphs, then we get:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare and Visualize death causes in two datasets"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cause | \n",
" number | \n",
" percentage | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Warplane shelling | \n",
" 12926 | \n",
" 0.422225 | \n",
"
\n",
" \n",
" 1 | \n",
" Shooting | \n",
" 8348 | \n",
" 0.272686 | \n",
"
\n",
" \n",
" 2 | \n",
" Shelling | \n",
" 4789 | \n",
" 0.156432 | \n",
"
\n",
" \n",
" 3 | \n",
" Explosion | \n",
" 2353 | \n",
" 0.076860 | \n",
"
\n",
" \n",
" 4 | \n",
" Field Execution | \n",
" 487 | \n",
" 0.015908 | \n",
"
\n",
" \n",
" 5 | \n",
" Unknown | \n",
" 257 | \n",
" 0.008395 | \n",
"
\n",
" \n",
" 6 | \n",
" Chemical and toxic gases | \n",
" 226 | \n",
" 0.007382 | \n",
"
\n",
" \n",
" 7 | \n",
" Other | \n",
" 120 | \n",
" 0.003920 | \n",
"
\n",
" \n",
" 8 | \n",
" Siege | \n",
" 93 | \n",
" 0.003038 | \n",
"
\n",
" \n",
" 9 | \n",
" Un-allowed to seek Medical help | \n",
" 39 | \n",
" 0.001274 | \n",
"
\n",
" \n",
" 10 | \n",
" mixed | \n",
" 976 | \n",
" 0.031881 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" cause number percentage\n",
"0 Warplane shelling 12926 0.422225\n",
"1 Shooting 8348 0.272686\n",
"2 Shelling 4789 0.156432\n",
"3 Explosion 2353 0.076860\n",
"4 Field Execution 487 0.015908\n",
"5 Unknown 257 0.008395\n",
"6 Chemical and toxic gases 226 0.007382\n",
"7 Other 120 0.003920\n",
"8 Siege 93 0.003038\n",
"9 Un-allowed to seek Medical help 39 0.001274\n",
"10 mixed 976 0.031881"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"death_cause_fact"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cause | \n",
" number | \n",
" percentage | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Civilian casualties as a result of alleged rus... | \n",
" 233 | \n",
" 0.453307 | \n",
"
\n",
" \n",
" 1 | \n",
" Chemical weapons | \n",
" 158 | \n",
" 0.307393 | \n",
"
\n",
" \n",
" 2 | \n",
" Attacks against hospitals | \n",
" 105 | \n",
" 0.204280 | \n",
"
\n",
" \n",
" 3 | \n",
" Attacks against schools | \n",
" 9 | \n",
" 0.017510 | \n",
"
\n",
" \n",
" 4 | \n",
" Attacks against humanitarian relief personnel ... | \n",
" 7 | \n",
" 0.013619 | \n",
"
\n",
" \n",
" 5 | \n",
" Attacks against bakeries | \n",
" 1 | \n",
" 0.001946 | \n",
"
\n",
" \n",
" 6 | \n",
" Attacks against journalists | \n",
" 1 | \n",
" 0.001946 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" cause number percentage\n",
"0 Civilian casualties as a result of alleged rus... 233 0.453307\n",
"1 Chemical weapons 158 0.307393\n",
"2 Attacks against hospitals 105 0.204280\n",
"3 Attacks against schools 9 0.017510\n",
"4 Attacks against humanitarian relief personnel ... 7 0.013619\n",
"5 Attacks against bakeries 1 0.001946\n",
"6 Attacks against journalists 1 0.001946"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"death_cause_media"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use R Language and Photopshop to visualize the results:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize casualties of civilian and non-civilian caused by different actors"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" actors | \n",
" number | \n",
" status | \n",
" percentage | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Syrian government and affiliated militias | \n",
" 10324 | \n",
" Civilian | \n",
" 0.662644 | \n",
"
\n",
" \n",
" 1 | \n",
" Syrian government and affiliated militias | \n",
" 5256 | \n",
" Non-Civilian | \n",
" 0.337356 | \n",
"
\n",
" \n",
" 2 | \n",
" Russian troops | \n",
" 3651 | \n",
" Civilian | \n",
" 0.958771 | \n",
"
\n",
" \n",
" 3 | \n",
" Russian troops | \n",
" 157 | \n",
" Non-Civilian | \n",
" 0.041229 | \n",
"
\n",
" \n",
" 4 | \n",
" ISIS | \n",
" 1950 | \n",
" Civilian | \n",
" 0.628627 | \n",
"
\n",
" \n",
" 5 | \n",
" ISIS | \n",
" 1152 | \n",
" Non-Civilian | \n",
" 0.371373 | \n",
"
\n",
" \n",
" 6 | \n",
" International coalition forces | \n",
" 1905 | \n",
" Civilian | \n",
" 0.706602 | \n",
"
\n",
" \n",
" 7 | \n",
" International coalition forces | \n",
" 154 | \n",
" Non-Civilian | \n",
" 0.057122 | \n",
"
\n",
" \n",
" 8 | \n",
" Armed opposition groups | \n",
" 821 | \n",
" Civilian | \n",
" 0.398737 | \n",
"
\n",
" \n",
" 9 | \n",
" Armed opposition groups | \n",
" 813 | \n",
" Non-Civilian | \n",
" 0.394852 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" actors number status percentage\n",
"0 Syrian government and affiliated militias 10324 Civilian 0.662644\n",
"1 Syrian government and affiliated militias 5256 Non-Civilian 0.337356\n",
"2 Russian troops 3651 Civilian 0.958771\n",
"3 Russian troops 157 Non-Civilian 0.041229\n",
"4 ISIS 1950 Civilian 0.628627\n",
"5 ISIS 1152 Non-Civilian 0.371373\n",
"6 International coalition forces 1905 Civilian 0.706602\n",
"7 International coalition forces 154 Non-Civilian 0.057122\n",
"8 Armed opposition groups 821 Civilian 0.398737\n",
"9 Armed opposition groups 813 Non-Civilian 0.394852"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"actors_status"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"([,\n",
" ,\n",
" ,\n",
" ,\n",
" ,\n",
" ],\n",
" )"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"