From f452f0e23102c7008e01653764cc66e18dfcb4c7 Mon Sep 17 00:00:00 2001 From: AnaP2020 Date: Mon, 15 Jun 2026 11:10:38 +0100 Subject: [PATCH] 1st project done --- READ ME.docx | Bin 0 -> 10525 bytes Team List_Shark Attack.txt | 1 + Team List_Shark_Attacks_project.ipynb | 6941 +++++++++++++++++++++++++ Team_List_Shark_Attack_EDA.ipynb | 1854 +++++++ 4 files changed, 8796 insertions(+) create mode 100644 READ ME.docx create mode 100644 Team List_Shark Attack.txt create mode 100644 Team List_Shark_Attacks_project.ipynb create mode 100644 Team_List_Shark_Attack_EDA.ipynb diff --git a/READ ME.docx b/READ ME.docx new file mode 100644 index 0000000000000000000000000000000000000000..b5a81058531a424e8d9c02eb1f710eb3b9e8ab18 GIT binary patch literal 10525 zcmaKS19&CfvUY4w>>b<5#I|kQ_QaTAV%yflnAo;$O>9k)oB7VU=gj&3|DNjS+0R;g zuj*dCtE%hmw@O|L6buyz3JMB{1!+9xG%)+nYuKd&=3K5NKx(>@F ztW+~_YdRrF;e0^WMJaQ3%~%!PaKN0`7GE`$HpaZ_K6ScZ*a;9Q4?`dpYuT>nj2=~_ zU;wK0O;EuEI^F4j+933@hpaM+HsA2viuJ*9mZ@ANW?omgenb#mC)$`K)@xk{oYR1B z@eWX`+^>ZoiAG*aF{DKEi!#o^mS4^xr^k1oo2$>PgyKM7u{5J810;Y9rA8%Iw1HP+ zc8MzayAtY7;_BY!+J;nYP`P81oP*X2M4BuQsMTOsrPF&uVV)x}qKG>Ms-*cM9}MHkKw>Klw#{TnVj&z%g0E4NI|kNh|8E z&I2VaOofgj%INa&LC1$QQOk`hR!l>S0&lkilo2b;aY++)+^6${v*!Qx?A$x_TRy>rlVqB66@1|oSu`@3sKBfzWvpzS$UlkBP{ zt+h0>gcbW?>mIggbJUb!&4)g@!~UgR`?BZk0mS13_s+k0zu!^XI1ZWc_QSKeLW-a+K0 zAfe_k{cGYufq-6xfPm!x&yYs`-;j1Pad!R)Xs6#1U6>>lx59w*RW620ekG6q)L1Yw zRiuba!&o&2bSTcce5#xT3$ZEMSc@%Mc_apHW^-L{RHk)5c~Ne{R4flZkqC5{2!fd? zrcXHm>#^N8n=df6MqYoYfDnrv8C17PPd6;z`OhHH{jt7?-sloM`mj;@Hj z9T7Z-tJySf(wECSXBkDJHZ_yMWGSbBJ!my$WDH?R%f@3kK{+!s)bkt@Ndpru{{D&R zHla;tC|#J9yr&V1SSE!l5Va_81Pt3Z;UGfA5BL2JNo*oOFTcpR7n`kWD#IlVyR>Eo z1=%R$c>xR35Jiq6M+^>GDat;TIU`7j3L?TTih3&M%eLc#h?T-_U_=9h^@srHEPa|) ziCj~$AL85%x9+rrj+cnNLgRvv5N`lK+8i6u5-}LrwExzHJnr_?SaZhQgc^yoK`DSB zeQxb;lI%*Q^^~e)NSyjT`d(;MGxDs%E6DX8f~@=n=ont#n_%k+-EZj7C}Kz?%ZZ{R zx(=V6Wh~GF2zI>Ny{8H4L8&_NtJ;<;#e3pz67NF(%o4nD=!!pF1T|4J~XcDByS28Pxqf4O6#l2IPpIoVzjAf%?2z8_w=Mn@v|87RX6n*fVaBmLP(w(@tX| z_kC}p!I#(p#Y7mvj*ZX1+_QKvSv3x3?Iu^S^(xYkEkn{4Ej3G=+Dcx4{uCH20uS&p zlwjTJaD_E(2qe@ijN2ApwD09ii)_ zwl^$D%+7xm)@q$TM|3jBAh*A}hk%|H1FNQwA!Ak%iNx@*Z#| zrR4@p9tJ>flO zATHy=kS@q^R-#!)?W5XNLzd#8z%>k*U%2C;x2O3!o+&+*DxzJ;jv`$f%tXiBsJ;cY z96cj+o7!aGVy2KpRCbM};~yI3uaK%wC#C60C*wv&YV2)|e3Fo`%hon&UE>$I5s`rU z$tESVMISj%QS0K{L^%7cCzLr-qF6T4{UHsp1n?}3kzzh@*+IvGlh(B3oGpNhmgM-8 z`1Bok2uNQe9(YEs*?RV_uErXnIelUn6<|_87#d0iWQYT-Cl4+B!mlb<^1ywWIuoY= zvsaP-hm@kn%mhNa=#O8Le))JdPb@29-Ao-)4_6%Zn&1fJ#lXMN3EANpY(R-_-SK

pcR7j-TVgo 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 B3HSg2 literal 0 HcmV?d00001 diff --git a/Team List_Shark Attack.txt b/Team List_Shark Attack.txt new file mode 100644 index 0000000..c9b7a27 --- /dev/null +++ b/Team List_Shark Attack.txt @@ -0,0 +1 @@ +Presentation Slide link: https://docs.google.com/presentation/d/1cu8gJS5_vuTrGmme_Qp1C7JvRe8RjycR_XEOklTlEOY/edit?slide=id.g3e870b5a937_0_2669#slide=id.g3e870b5a937_0_2669 \ No newline at end of file diff --git a/Team List_Shark_Attacks_project.ipynb b/Team List_Shark_Attacks_project.ipynb new file mode 100644 index 0000000..a557a0d --- /dev/null +++ b/Team List_Shark_Attacks_project.ipynb @@ -0,0 +1,6941 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "id": "RRzC2JTURhSI" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import os\n", + "import re\n", + "from datetime import datetime\n", + "from difflib import get_close_matches\n", + "import string\n", + "import time\n", + "import pycountry" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GCLWI1p0Xc15" + }, + "source": [ + "**Importing the file**" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 672 + }, + "executionInfo": { + "elapsed": 18, + "status": "ok", + "timestamp": 1780854310409, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "SU3ikY_wRg0c", + "outputId": "ce34ea6e-4b32-4dca-df1f-fde022d5023c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryStateLocationActivityNameSexAge...SpeciesSourcepdfhref formulahrefCase NumberCase Number.1original orderUnnamed: 21Unnamed: 22
024th May2026.0UnprovokedAustraliaQueenslandKennedy ShoalSpearfishingMichael JenszM39...Undetermined Bull shark most likelySimon de Marchi: 9 News: 7 News: ABC News:NaNNaNNaNNaNNaNNaNNaNNaN
117th May2026.0QuestionableUSAMarylandAssateague State ParkSurfingBrendan OsterM?...Blue fish bite most probableKeithe Cowley: Delmarva Now:NaNNaNNaNNaNNaNNaNNaNNaN
216th May2026.0UnprovokedAustraliaWestern AustraliaHorseshoe Reef  Rottnest IslandSkindivingSteven MattaboniM38...Great White SharkABC News: 9 News: 7 News: Simon De MarchiNaNNaNNaNNaNNaNNaNNaNNaN
314th April2026.0UNprovokedMaldivesGaafu Alif AtollKooddooSwimmingNot stated - on honeymoonM?...UnknownThe U.S. Sun: Simon De MarchiNaNNaNNaNNaNNaNNaNNaNNaN
43rd April2026.0UnprovokedAustraliaSouth AustraliaMiddleton Beach Fleurieu Peninsula AdelaideSurfingOliver Tokic-BensleyM16...Bronze WhalerABC News: The Guardian:  Andrew Currie and Bob...NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 23 columns

\n", + "
" + ], + "text/plain": [ + " Date Year Type Country State \\\n", + "0 24th May 2026.0 Unprovoked Australia Queensland \n", + "1 17th May 2026.0 Questionable USA Maryland \n", + "2 16th May 2026.0 Unprovoked Australia Western Australia \n", + "3 14th April 2026.0 UNprovoked Maldives Gaafu Alif Atoll \n", + "4 3rd April 2026.0 Unprovoked Australia South Australia \n", + "\n", + " Location Activity \\\n", + "0 Kennedy Shoal Spearfishing \n", + "1 Assateague State Park Surfing \n", + "2 Horseshoe Reef Rottnest Island Skindiving \n", + "3 Kooddoo Swimming \n", + "4 Middleton Beach Fleurieu Peninsula Adelaide Surfing \n", + "\n", + " Name Sex Age ... \\\n", + "0 Michael Jensz M 39 ... \n", + "1 Brendan Oster M ? ... \n", + "2 Steven Mattaboni M 38 ... \n", + "3 Not stated - on honeymoon M ? ... \n", + "4 Oliver Tokic-Bensley M 16 ... \n", + "\n", + " Species \\\n", + "0 Undetermined Bull shark most likely \n", + "1 Blue fish bite most probable \n", + "2 Great White Shark \n", + "3 Unknown \n", + "4 Bronze Whaler \n", + "\n", + " Source pdf href formula href \\\n", + "0 Simon de Marchi: 9 News: 7 News: ABC News: NaN NaN NaN \n", + "1 Keithe Cowley: Delmarva Now: NaN NaN NaN \n", + "2 ABC News: 9 News: 7 News: Simon De Marchi NaN NaN NaN \n", + "3 The U.S. Sun: Simon De Marchi NaN NaN NaN \n", + "4 ABC News: The Guardian: Andrew Currie and Bob... NaN NaN NaN \n", + "\n", + " Case Number Case Number.1 original order Unnamed: 21 Unnamed: 22 \n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN \n", + "\n", + "[5 rows x 23 columns]" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_original = pd.read_excel(\"GSAF5.xls\")\n", + "shark_attack_original.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 23, + "status": "ok", + "timestamp": 1780854310536, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "TgokPh4mOP1B", + "outputId": "3f081946-551d-4d75-ed06-1c0637675fa2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 7090 entries, 0 to 7089\n", + "Data columns (total 23 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 7090 non-null object \n", + " 1 Year 7088 non-null float64\n", + " 2 Type 7072 non-null str \n", + " 3 Country 7040 non-null str \n", + " 4 State 6603 non-null str \n", + " 5 Location 6523 non-null str \n", + " 6 Activity 6507 non-null str \n", + " 7 Name 6872 non-null str \n", + " 8 Sex 6512 non-null str \n", + " 9 Age 4096 non-null object \n", + " 10 Injury 7054 non-null str \n", + " 11 Fatal Y/N 6529 non-null object \n", + " 12 Time 3563 non-null object \n", + " 13 Species 3959 non-null str \n", + " 14 Source 7070 non-null object \n", + " 15 pdf 6799 non-null object \n", + " 16 href formula 6794 non-null str \n", + " 17 href 6796 non-null str \n", + " 18 Case Number 6798 non-null str \n", + " 19 Case Number.1 6797 non-null str \n", + " 20 original order 6799 non-null float64\n", + " 21 Unnamed: 21 1 non-null str \n", + " 22 Unnamed: 22 2 non-null str \n", + "dtypes: float64(2), object(6), str(15)\n", + "memory usage: 3.2+ MB\n" + ] + } + ], + "source": [ + "shark_attack_original. info()" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 25, + "status": "ok", + "timestamp": 1780854310565, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "MCTVv4rckR0O", + "outputId": "2e1c747a-fa0d-4a6c-d5b3-e405d31998e2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 7090 entries, 0 to 7089\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 7090 non-null object \n", + " 1 Year 7088 non-null float64\n", + " 2 Type 7072 non-null str \n", + " 3 Country 7040 non-null str \n", + " 4 Activity 6507 non-null str \n", + " 5 Sex 6512 non-null str \n", + " 6 Injury 7054 non-null str \n", + " 7 Fatal Y/N 6529 non-null object \n", + " 8 Species 3959 non-null str \n", + "dtypes: float64(1), object(2), str(6)\n", + "memory usage: 1.0+ MB\n" + ] + } + ], + "source": [ + "#Droping columns\n", + "shark_attack_df = shark_attack_original.copy()\n", + "shark_attack_df = shark_attack_df.drop(columns=[\n", + " 'Source', 'pdf', 'href formula', 'href',\n", + " 'Case Number', 'Case Number.1',\n", + " 'original order', 'Unnamed: 21', 'Unnamed: 22', 'Name', 'State',\n", + " 'Location', 'Time', 'Age'\n", + " ])\n", + "shark_attack_df.head()\n", + "shark_attack_df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PKbSPEjSjDZ7" + }, + "source": [ + "**YEAR AND DATE COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 26, + "status": "ok", + "timestamp": 1780854310594, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "iOGVvByIO1mR", + "outputId": "eb10d100-df65-40a1-db54-55230f21cc77" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2026., 2025., 2024., 2023., 2022., 2021., 2020., 2019., 2018.,\n", + " 2017., nan, 2016., 2015., 2014., 2013., 2012., 2011., 2010.,\n", + " 2009., 2008., 2007., 2006., 2005., 2004., 2003., 2002., 2001.,\n", + " 2000., 1999., 1998., 1997., 1996., 1995., 1984., 1994., 1993.,\n", + " 1992., 1991., 1990., 1989., 1969., 1988., 1987., 1986., 1985.,\n", + " 1983., 1982., 1981., 1980., 1979., 1978., 1977., 1976., 1975.,\n", + " 1974., 1973., 1972., 1971., 1970., 1968., 1967., 1966., 1965.,\n", + " 1964., 1963., 1962., 1961., 1960., 1959., 1958., 1957., 1956.,\n", + " 1955., 1954., 1953., 1952., 1951., 1950., 1949., 1948., 1848.,\n", + " 1947., 1946., 1945., 1944., 1943., 1942., 1941., 1940., 1939.,\n", + " 1938., 1937., 1936., 1935., 1934., 1933., 1932., 1931., 1930.,\n", + " 1929., 1928., 1927., 1926., 1925., 1924., 1923., 1922., 1921.,\n", + " 1920., 1919., 1918., 1917., 1916., 1915., 1914., 1913., 1912.,\n", + " 1911., 1910., 1909., 1908., 1907., 1906., 1905., 1904., 1903.,\n", + " 1902., 1901., 1900., 1899., 1898., 1897., 1896., 1895., 1894.,\n", + " 1893., 1892., 1891., 1890., 1889., 1888., 1887., 1886., 1885.,\n", + " 1884., 1883., 1882., 1881., 1880., 1879., 1878., 1877., 1876.,\n", + " 1875., 1874., 1873., 1872., 1871., 1870., 1869., 1868., 1867.,\n", + " 1866., 1865., 1864., 1863., 1862., 1861., 1860., 1859., 1858.,\n", + " 1857., 1856., 1855., 1853., 1852., 1851., 1850., 1849., 1847.,\n", + " 1846., 1845., 1844., 1842., 1841., 1840., 1839., 1837., 1836.,\n", + " 1835., 1834., 1832., 1831., 1830., 1829., 1828., 1827., 1826.,\n", + " 1825., 1823., 1822., 1819., 1818., 1817., 1816., 1815., 1812.,\n", + " 1811., 1810., 1808., 1807., 1805., 1804., 1803., 1802., 1801.,\n", + " 1800., 1797., 1792., 1791., 1788., 1787., 1786., 1785., 1784.,\n", + " 1783., 1780., 1779., 1776., 1771., 1767., 1764., 1758., 1753.,\n", + " 1751., 1749., 1755., 1748., 1742., 1738., 1733., 1723., 1721.,\n", + " 1703., 1700., 1642., 1691., 1640., 1638., 1637., 1617., 1595.,\n", + " 1580., 1555., 1554., 1543., 1518., 1500., 1000., 77., 5.,\n", + " 0.])" + ] + }, + "execution_count": 139, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Year\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 467 + }, + "executionInfo": { + "elapsed": 10, + "status": "ok", + "timestamp": 1780854310607, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "jYnmKEw3O7Av", + "outputId": "822e7f23-55c8-44bf-bfbc-b072053144e9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpecies
024th May2026.0UnprovokedAustraliaSpearfishingMBite wounds to the headYUndetermined Bull shark most likely
117th May2026.0QuestionableUSASurfingMBite wound to the handNBlue fish bite most probable
216th May2026.0UnprovokedAustraliaSkindivingMSevere injuries both legsYGreat White Shark
314th April2026.0UNprovokedMaldivesSwimmingMLeg strpped off flesh later amputated in hospitalNUnknown
43rd April2026.0UnprovokedAustraliaSurfingMBite wound to R ankleNBronze Whaler
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "0 24th May 2026.0 Unprovoked Australia Spearfishing M \n", + "1 17th May 2026.0 Questionable USA Surfing M \n", + "2 16th May 2026.0 Unprovoked Australia Skindiving M \n", + "3 14th April 2026.0 UNprovoked Maldives Swimming M \n", + "4 3rd April 2026.0 Unprovoked Australia Surfing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "0 Bite wounds to the head Y \n", + "1 Bite wound to the hand N \n", + "2 Severe injuries both legs Y \n", + "3 Leg strpped off flesh later amputated in hospital N \n", + "4 Bite wound to R ankle N \n", + "\n", + " Species \n", + "0 Undetermined Bull shark most likely \n", + "1 Blue fish bite most probable \n", + "2 Great White Shark \n", + "3 Unknown \n", + "4 Bronze Whaler " + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Filtering before 1960\n", + "shark_attack_df = shark_attack_df[\n", + " shark_attack_df[\"Year\"] >= 1960\n", + "]\n", + "\n", + "shark_attack_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 91, + "status": "ok", + "timestamp": 1780854310701, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "uYVXOsIgP52j", + "outputId": "41aceecc-8261-4efa-c654-11b3367ad967" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 4804 entries, 0 to 4804\n", + "Series name: Year\n", + "Non-Null Count Dtype \n", + "-------------- ----- \n", + "4804 non-null float64\n", + "dtypes: float64(1)\n", + "memory usage: 75.1 KB\n" + ] + } + ], + "source": [ + "shark_attack_df[\"Year\"].info()" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 30, + "status": "ok", + "timestamp": 1780854310729, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "bcqbBvUgQDqT", + "outputId": "9c222a26-2f9a-4244-8fab-0bcd801ba86d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2026., 2025., 2024., 2023., 2022., 2021., 2020., 2019., 2018.,\n", + " 2017., 2016., 2015., 2014., 2013., 2012., 2011., 2010., 2009.,\n", + " 2008., 2007., 2006., 2005., 2004., 2003., 2002., 2001., 2000.,\n", + " 1999., 1998., 1997., 1996., 1995., 1984., 1994., 1993., 1992.,\n", + " 1991., 1990., 1989., 1969., 1988., 1987., 1986., 1985., 1983.,\n", + " 1982., 1981., 1980., 1979., 1978., 1977., 1976., 1975., 1974.,\n", + " 1973., 1972., 1971., 1970., 1968., 1967., 1966., 1965., 1964.,\n", + " 1963., 1962., 1961., 1960.])" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Year\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": { + "id": "pzk1GdC1QLQD" + }, + "outputs": [], + "source": [ + "shark_attack_df[\"Year\"] = shark_attack_df[\"Year\"].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 37, + "status": "ok", + "timestamp": 1780854310774, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "w6QSFshwRHx8", + "outputId": "5c4df18f-cb9b-454b-97bf-2bca855a7961" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016,\n", + " 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005,\n", + " 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1984,\n", + " 1994, 1993, 1992, 1991, 1990, 1989, 1969, 1988, 1987, 1986, 1985,\n", + " 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973,\n", + " 1972, 1971, 1970, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961,\n", + " 1960])" + ] + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Year\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 766 + }, + "executionInfo": { + "elapsed": 96, + "status": "ok", + "timestamp": 1780854310864, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "_wotftgNRS4p", + "outputId": "b25dfada-fa67-429f-f708-39900c4791da" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_10728/1720687397.py:2: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " shark_attack_df[\"Date_parsed\"] = pd.to_datetime(\n" + ] + }, + { + "data": { + "text/plain": [ + "68 2025-05-26 00:00:00.000000000\n", + "2878 1999-06-19 00:00:00.000000000\n", + "2311 2005-09-04 00:00:00.000000000\n", + "4115 1970-01-01 00:00:00.000001972\n", + "630 2019-07-04 00:00:00.000000000\n", + "3739 1982-07-19 00:00:00.000000000\n", + "3885 1978-07-27 00:00:00.000000000\n", + "3910 1977-08-05 00:00:00.000000000\n", + "3194 1994-05-31 00:00:00.000000000\n", + "1278 2014-08-06 00:00:00.000000000\n", + "3667 1984-02-11 00:00:00.000000000\n", + "2988 1997-08-24 00:00:00.000000000\n", + "2799 2000-07-04 00:00:00.000000000\n", + "1213 2015-01-23 00:00:00.000000000\n", + "2560 2003-01-02 00:00:00.000000000\n", + "3411 1989-12-19 00:00:00.000000000\n", + "1212 2015-01-24 00:00:00.000000000\n", + "4063 NaT\n", + "1638 2011-08-18 00:00:00.000000000\n", + "4196 1969-08-01 00:00:00.000000000\n", + "Name: Date_parsed, dtype: datetime64[ns]" + ] + }, + "execution_count": 145, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Starting Date cleaning\n", + "shark_attack_df[\"Date_parsed\"] = pd.to_datetime(\n", + " shark_attack_df[\"Date\"],\n", + " errors=\"coerce\"\n", + ")\n", + "shark_attack_df[\"Date_parsed\"].sample(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 35, + "status": "ok", + "timestamp": 1780854310902, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "pr4771fzRolO", + "outputId": "b73cb789-7c09-4873-870d-929f9e6bd2c6" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['24th May', '17th May', '16th May', '14th April', '3rd April',\n", + " '26th March', '25th March', '18th March', '14th March',\n", + " '10th March', '5th March', '22nd February', '6th February',\n", + " '29th January', '24th January', '20th January', '19th January',\n", + " '18th January', '13th January', '10th January', '8th January',\n", + " '5th January', '3rd January ', '25th December', '21st December',\n", + " '12th December', '9th December', '27th November ', '10th November',\n", + " '9th November', '5th November', '4th November', '14th October',\n", + " '11th October', '7th October', '29th September', '27th September',\n", + " '6th September', '1st September', '30th August', '18th August',\n", + " '17th August', '16th August', '7th August', '1st August',\n", + " '28th July', '25th July', '22nd July', '20th July', '19th July',\n", + " '18th July', '15th July', '6th July ', '6th July', '4th July',\n", + " '29th June', '25th June', '22nd June', '17th June', '31st May',\n", + " 'Reported 02 Nov-2023', '09 Sep- 2023', 'Reported 06-Sep-2023',\n", + " 'Reported 14 Jul-2023', 'Reported 14-June 2023', '29 Jan--2023',\n", + " '08-Jan--2023', 'Reported 27-Apr-2022', 'Reported 10-Feb-2022',\n", + " '11-Dec-2021`', 'Reported 06-Dec-2021', 'Reported 11-Jul-2021',\n", + " '10-Jul-202', 'Reported 14-Mar-2020', 'Reported 30-Jan-2020',\n", + " 'Reported 04-Oct-2019', 'Reported 17-Jul-2019',\n", + " 'Reported 06-Jun-2019', 'Reported 27-Apr-2019',\n", + " 'Reported 16-Oct-2018', 'Reported 28-Aug-2018',\n", + " 'Reported 16-Jul-2018', 'Reported 09-Jul-2018.', 'Jun-1018',\n", + " 'Reported 30-Apr-2018', 'Reported 10-Apr-2018',\n", + " 'Reported 25-Nov-2017', 'Reported 13-Nov-2017',\n", + " 'Reported 31-Oct-2017', 'Reported 06-Sep-2017',\n", + " 'Reported 26-Jul-2017', 'Reported 07-Jul-2017',\n", + " 'Reported 14-Jun-2017', 'Reported 07-Jun-2017',\n", + " 'Reported 06-May-2017', 'Reported 09-Mar-2017', '00.Feb.2017',\n", + " 'Reported 14-Jul-2016', 'Reported 08-Jul-2016',\n", + " 'Reported 03-Mar-2016', 'Reported 10-Feb-2016',\n", + " 'Reported 11-Jan-2016', 'Reported 25-Jun-2015',\n", + " 'Reported 23-Dec-2014', 'Reported 03-Dec-2014',\n", + " 'Reported 17-Nov-2014', 'Reported 12-Sep-2014',\n", + " 'Reported 25-Aug-2014', 'Reported 27-Jun-2014',\n", + " 'Reported 17-Jun-2014', 'Reported 10-May-2014',\n", + " 'Reported 12-Apr-2014', 'Reported 17-Feb-2014',\n", + " 'Reported 08-Aug-2013', 'Reported 17-Jul-2013',\n", + " 'Reported 14-Jun-2013', 'Reported 02-Apr-2013',\n", + " 'Reported 21-Mar-2013', 'Reported 21-Jan-2013',\n", + " 'Reported 11-Oct-2012', 'Reported 28-Jun-2012',\n", + " 'Reported 22-Jan-2012', 'Reported 26-Dec-2011',\n", + " 'Reported 20-Nov-2011', 'Reported 28-Oct-2011', '16-Aug--2011',\n", + " '11-Aug--2011', 'Reported 14-Jun-2011', 'Reported 06-Jun-2011',\n", + " 'Reported 07-May-2011', 'Reported 29-Mar-2011',\n", + " 'Reported 10-Mar-2010', 'Reported 28-Feb-2011',\n", + " 'Reported 04-Feb-2011', 'Reported 12-Jan 2011',\n", + " 'Reported 03-Dec-2010', 'Reported 27-Nov-2010',\n", + " 'Reported 12-Nov-2010', 'Reported 28-Oct-2010',\n", + " 'Reported 06-Sep-2010', '190Feb-2010', 'Reported 06-Feb-2010',\n", + " 'Reported 29-Oct-2009', 'Reported 14-Oct-2009',\n", + " 'Reported 24-Jul-2009', 'Reported 14-Jun-2009',\n", + " 'Reported 25-Apr-2009', 'Reported 17-Mar-2009',\n", + " 'Reported 16-Mar-2009', 'Reported 27-Jan-2009',\n", + " 'Reported 26-Jan-2009', 'Reported 13-Jan-2009',\n", + " 'Reported 30-Jul-2008', 'Late Jul-2008', 'Reported 26-Jun-2008',\n", + " 'Reported 02-Jun-2008', 'Reported 19-Apr-2008',\n", + " 'Reported 09-Apr-2008', 'Reported 08-Apr-2008',\n", + " 'Reported 21-Feb-2008', 'Reported 19-Jan-2008', 'Fall 2008',\n", + " 'Summer-2008', '19-Jul-2007.b', '19-Jul-2007.a',\n", + " 'Reported 17-May-2007', 'Reported 09-May-2007',\n", + " 'Reported 13-Apr-2007', 'Reported 14-Mar-2007',\n", + " 'Reported 05-Mar-2007', 'Reported 18-Sep-2006', 'Early Aug-2006',\n", + " 'Reported 17-Jul-2006', 'Reported 23-Apr-2006',\n", + " 'Reported 28-Mar-2006', 'Reported 28-Jan-2006',\n", + " 'Reported 06-Dec-2005', 'Reported 29-Nov-2005',\n", + " 'Reported 16-Nov-2005', 'Reported 27-Sep-2005',\n", + " 'Reported 15-Jul-2005', 'Reported 27-Mar-2005',\n", + " ' 19-Jul-2004 Reported to have happened \"on the weekend\"',\n", + " 'Reported 15-Jan-2004 ', 'Reported 26-Jul-2003', 'Late Jul-2003',\n", + " 'Reported 06-Aug-2002', 'Reported 13-Jun-2002',\n", + " 'Reported 21-May-2002', '02-Ap-2001', 'Reported 24-Jan-2001',\n", + " 'Early Sep-2000', 'Reported 27-Aug-2000', 'Early Jun-2000',\n", + " 'Reported 03-Mar-2000', 'Reported 28-Jan-2000',\n", + " 'Reported 16-Sep-1999', 'Reported 18-Mar-1999 ',\n", + " 'Reported 03-Jan-1999', 'Reported 20-Dec-1998',\n", + " 'Reported 16-Sep-1998', 'Reported 23-Aug-1998',\n", + " 'Reported 28-Jan-1998', 'Reported 05-Nov-1997',\n", + " 'Reported 11-Oct-1997', 'Reported 19-Feb-1996',\n", + " 'Reported 28-Oct-1995', 'Early Jul-1995',\n", + " 'Reported 10-Dec-1994 ', 'Reported 11-Sep-1994',\n", + " 'Reported 16-Apr-1994', 'Reported 12-Jan-1994',\n", + " 'Last incident of 1994 in Hong Kong', 'Reported 19-Aug-1993',\n", + " 'Late May 1993', 'Fall 1993', 'Between May & Nov-1993',\n", + " 'Reported 12-Nov-1992', 'Reported 29-Oct-1989',\n", + " 'Reported 06-Aug-1989', 'Reported 05-Jan-1988',\n", + " 'Reported 22-Sep-1986 ', 'Mid Jul-1985 or mid Jul-1986',\n", + " 'Reported 10-Nov-1983', 'Ca. 1983', 'Late Aug-1982',\n", + " 'Reported 15-Jun-1981', 'Summer of 1981', 'Reported 22-Aug-1980',\n", + " 'Reported 03-Aug-1980', 'Late Jul-1980', 'Early Jul-1980',\n", + " 'Summer 1980', '1980s ', 'Reported 02-Sep-1978',\n", + " 'Reported 01-Aug-1978', 'Apr-1978`', 'Reported 02-Jun-1976',\n", + " '26-Jul-1975.b', 'Reported 02-Jun-1975', 'Reported 14-Feb-1975',\n", + " 'Reported 25-Apr-1974', 'Early Feb-1974', 'Summer 1974',\n", + " 'Reported 18-Dec-1973', 'Reported 10-Sep-1973',\n", + " 'Reported 10-Oct-1972', 'Reported 26-Jun-1972',\n", + " 'Reported 25-Nov-1971', 'Reported 16-Apr-1971', 'Late Apr-1971',\n", + " 'Reported 09-Jan-1970', '1970s', 'Late 1970s', 'Ca. 1970',\n", + " 'Reported 17-Feb-1969', 'Winter 1969', 'Reported 11-Apr-1968',\n", + " 'Reported 21-Dec-1967', 'Reported 26-Oct-1967',\n", + " 'Reported 14-Aug-1967', '13 or 30-May-1967', 'Early Nov-1966',\n", + " 'Sep- 1966', 'Mid Aug-1966', 'Summer of 1996',\n", + " 'Reported 02-Jul-1965', 'May-Jun-1965', 'Summer 1965',\n", + " 'Early 1965', 'Ca. 1965', 'Reported 17-Feb-1964',\n", + " 'Reported 06-Jan-1964', 'Reported 16-Nov-1963',\n", + " 'Reported 05-Nov-1963', 'Reported 10-Jul-1963', 'Early 1963',\n", + " 'Reported 31-Aug-1962', 'Late Aug-1962', 'Reported 03-Jul-1962',\n", + " 'Jan-Jun-1962', 'Ca. 1962', 'Reported 06-Sep-1961',\n", + " 'Reported 06-Jun-1961', 'Reported 02-Jan-1961',\n", + " 'Reported 22-Aug-1960', 'Reported 20-Apr-1960',\n", + " 'Early summer 1960', 'Late 1960s', '1960s', '1960-1961',\n", + " 'Ca. 1960'], dtype=object)" + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#First clean Up of dates with no format\n", + "invalid_dates = shark_attack_df.loc[\n", + " shark_attack_df[\"Date_parsed\"].isna(),\n", + " \"Date\"\n", + "]\n", + "\n", + "invalid_dates.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 45, + "status": "ok", + "timestamp": 1780854310950, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "Ot1CCiRyR241", + "outputId": "e8e1e9ba-67ed-43b0-eaa4-1c58f5312ef7" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(307)" + ] + }, + "execution_count": 147, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "invalid_dates.value_counts().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": { + "id": "wOQG90iUR9DY" + }, + "outputs": [], + "source": [ + "#Clean 2 Word replacement\n", + "shark_attack_df[\"Date\"] = (\n", + " shark_attack_df[\"Date\"]\n", + " .str.replace(\"Reported \", \"\", regex=False)\n", + " .str.replace(\"Late \", \"\", regex=False)\n", + " .str.replace(\"Early \", \"\", regex=False)\n", + " .str.replace(\"Mid \", \"\", regex=False)\n", + " .str.replace(\"Summer \", \"\", regex=False)\n", + " .str.replace(\"Winter \", \"\", regex=False)\n", + " .str.replace(\"Fall \", \"\", regex=False)\n", + " .str.replace(\"Ca.\", \"\", regex=False)\n", + " .str.replace(\"Circa\", \"\", regex=False)\n", + " .str.replace(\"Summer-2008\", \"\", regex=False)\n", + " .str.replace(\"Circa\", \"\", regex=False)\n", + " .str.replace(\"Last incident of 1994 in Hong Kong\",\"1994\",regex=False)\n", + " .str.replace(\"Circa\", \"\", regex=False)\n", + " .str.replace(\"summer 1960\", \"1960\", regex=False)\n", + " .str.replace(\"Between May & Nov-1993\", \"1993\", regex=False)\n", + ")\n", + "shark_attack_df = shark_attack_df[\n", + " ~shark_attack_df[\"Date\"].isin([\n", + " ' 19-Jul-2004 to have happened \"on the weekend\"',\n", + " 'Jul-1985 or mid Jul-1986',\n", + " '1960-1961'\n", + " ])\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 33, + "status": "ok", + "timestamp": 1780854311055, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "-YxHb4r9SUyv", + "outputId": "3d9a496c-d086-4b25-e970-07df5f6a82c8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['24th May', '17th May', '16th May', '14th April', '3rd April',\n", + " '26th March', '25th March', '18th March', '14th March',\n", + " '10th March', '5th March', '22nd February', '6th February',\n", + " '29th January', '24th January', '20th January', '19th January',\n", + " '18th January', '13th January', '10th January', '8th January',\n", + " '5th January', '3rd January ', '25th December', '21st December',\n", + " '12th December', '9th December', '27th November ', '10th November',\n", + " '9th November', '5th November', '4th November', '14th October',\n", + " '11th October', '7th October', '29th September', '27th September',\n", + " '6th September', '1st September', '30th August', '18th August',\n", + " '17th August', '16th August', '7th August', '1st August',\n", + " '28th July', '25th July', '22nd July', '20th July', '19th July',\n", + " '18th July', '15th July', '6th July ', '6th July', '4th July',\n", + " '29th June', '25th June', '22nd June', '17th June', '31st May',\n", + " '02 Nov-2023', '09 Sep- 2023', '06-Sep-2023', '14 Jul-2023',\n", + " '14-June 2023', '29 Jan--2023', '08-Jan--2023', '27-Apr-2022',\n", + " '10-Feb-2022', '11-Dec-2021`', '06-Dec-2021', '11-Jul-2021',\n", + " '10-Jul-202', '14-Mar-2020', '30-Jan-2020', '04-Oct-2019',\n", + " '17-Jul-2019', '06-Jun-2019', '27-Apr-2019', '16-Oct-2018',\n", + " '28-Aug-2018', '16-Jul-2018', '09-Jul-2018.', 'Jun-1018',\n", + " '30-Apr-2018', '10-Apr-2018', '25-Nov-2017', '13-Nov-2017',\n", + " '31-Oct-2017', '06-Sep-2017', '26-Jul-2017', '07-Jul-2017',\n", + " '14-Jun-2017', '07-Jun-2017', '06-May-2017', '09-Mar-2017',\n", + " '00.Feb.2017', ' 14-Jul-2016', '08-Jul-2016', '03-Mar-2016',\n", + " '10-Feb-2016', '11-Jan-2016', '25-Jun-2015', '23-Dec-2014',\n", + " '03-Dec-2014', '17-Nov-2014', '12-Sep-2014', '25-Aug-2014',\n", + " '27-Jun-2014', '17-Jun-2014', '10-May-2014', '12-Apr-2014',\n", + " '17-Feb-2014', '08-Aug-2013', '17-Jul-2013', '14-Jun-2013',\n", + " '02-Apr-2013', '21-Mar-2013', '21-Jan-2013', '11-Oct-2012',\n", + " '28-Jun-2012', '22-Jan-2012', '26-Dec-2011', '20-Nov-2011',\n", + " '28-Oct-2011', '16-Aug--2011', '11-Aug--2011', '14-Jun-2011',\n", + " '06-Jun-2011', '07-May-2011', '29-Mar-2011', '10-Mar-2010',\n", + " '28-Feb-2011', '04-Feb-2011', '12-Jan 2011', '03-Dec-2010',\n", + " '27-Nov-2010', '12-Nov-2010', '28-Oct-2010', '06-Sep-2010',\n", + " '190Feb-2010', '06-Feb-2010', '29-Oct-2009', '14-Oct-2009',\n", + " '24-Jul-2009', '14-Jun-2009', '25-Apr-2009', '17-Mar-2009',\n", + " '16-Mar-2009', '27-Jan-2009', '26-Jan-2009', '13-Jan-2009',\n", + " '30-Jul-2008', 'Jul-2008', '26-Jun-2008', '02-Jun-2008',\n", + " '19-Apr-2008', '09-Apr-2008', '08-Apr-2008', '21-Feb-2008',\n", + " '19-Jan-2008', '2008', '', '19-Jul-2007.b', '19-Jul-2007.a',\n", + " '17-May-2007', '09-May-2007', ' 13-Apr-2007', '14-Mar-2007',\n", + " '05-Mar-2007', '18-Sep-2006', 'Aug-2006', '17-Jul-2006',\n", + " ' 23-Apr-2006', ' 28-Mar-2006', '28-Jan-2006', '06-Dec-2005',\n", + " '29-Nov-2005', ' 16-Nov-2005', ' 27-Sep-2005',\n", + " ' 15-Jul-2005', ' 27-Mar-2005', '15-Jan-2004 ',\n", + " '26-Jul-2003', 'Jul-2003', '06-Aug-2002', '13-Jun-2002',\n", + " '21-May-2002', '02-Ap-2001', ' 24-Jan-2001', 'Sep-2000',\n", + " '27-Aug-2000', 'Jun-2000', ' 03-Mar-2000', '28-Jan-2000',\n", + " '16-Sep-1999', '18-Mar-1999 ', '03-Jan-1999', '20-Dec-1998',\n", + " '16-Sep-1998', ' 23-Aug-1998', '28-Jan-1998', '05-Nov-1997',\n", + " '11-Oct-1997', ' 19-Feb-1996', '28-Oct-1995', 'Jul-1995',\n", + " ' 10-Dec-1994 ', '11-Sep-1994', '16-Apr-1994', '12-Jan-1994',\n", + " '1994', ' 19-Aug-1993', 'May 1993', '1993', '12-Nov-1992',\n", + " '29-Oct-1989', ' 06-Aug-1989', ' 05-Jan-1988',\n", + " '22-Sep-1986 ', ' 10-Nov-1983', ' 1983', 'Aug-1982',\n", + " '15-Jun-1981', 'of 1981', '22-Aug-1980', '03-Aug-1980', 'Jul-1980',\n", + " '1980', '1980s ', '02-Sep-1978', '01-Aug-1978', 'Apr-1978`',\n", + " '02-Jun-1976', '26-Jul-1975.b', '02-Jun-1975', '14-Feb-1975',\n", + " '25-Apr-1974', 'Feb-1974', '1974', '18-Dec-1973', '10-Sep-1973',\n", + " '10-Oct-1972', '26-Jun-1972', '25-Nov-1971', '16-Apr-1971',\n", + " 'Apr-1971', '09-Jan-1970', '1970s', ' 1970', '17-Feb-1969', '1969',\n", + " '11-Apr-1968', '21-Dec-1967', '26-Oct-1967', '14-Aug-1967',\n", + " '13 or 30-May-1967', 'Nov-1966', 'Sep- 1966', 'Aug-1966',\n", + " 'of 1996', '02-Jul-1965', 'May-Jun-1965', '1965', ' 1965',\n", + " '17-Feb-1964', '06-Jan-1964', '16-Nov-1963', '05-Nov-1963',\n", + " '10-Jul-1963', '1963', '31-Aug-1962', 'Aug-1962', '03-Jul-1962',\n", + " 'Jan-Jun-1962', ' 1962', '06-Sep-1961', '06-Jun-1961',\n", + " '02-Jan-1961', '22-Aug-1960', '20-Apr-1960', '1960', '1960s',\n", + " ' 1960'], dtype=object)" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "invalid_dates = shark_attack_df.loc[\n", + " shark_attack_df[\"Date_parsed\"].isna(),\n", + " \"Date\"\n", + "]\n", + "\n", + "invalid_dates.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 14, + "status": "ok", + "timestamp": 1780854311067, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "h1wGwO80Sf2H", + "outputId": "c706ec8b-f5d5-46fc-ab39-e0736b0353b0" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsed
17202 Oct-20232023UnprovokedUSASurfingFMinor injury. Shark bit surfboardN10' to 12' Galapagos shark2023-10-02
212630-Jun-20072007UnprovokedUSASwimmingFHand bittenNNaN2007-06-30
446105-Mar-19641964UnprovokedUSASkin divingMMinor injury, abdomen abraded when he collided...N1.7 m [5.5'] shark1964-03-05
102702-Jun-20162016UnprovokedAUSTRALIASpearfishingMNo injury, but sharks repeatedly hit their fin...NaNBronze whaler sharks x 32016-06-02
240506-Aug-20042004UnprovokedUSASwimmingMBack, buttocks, left hand & left side of face ...N1.2 m [4'] shark2004-08-06
378915-Jun-19811981WatercraftENGLANDFishingMMinor injuries from shark that leapt aboard th...N13', 400-lb thresher sharkNaT
164611-Aug--20112011UnprovokedUSASwimmingMLower right leg bittenNNaNNaT
425604-Feb-19681968UnprovokedAUSTRALIASpearfishingMNo injury, speargun bittenNBronze whaler shark, 3 m [10']1968-02-04
223921-May-20062006UnprovokedBRAZILSurfingMInjuries to left thigh, calf & footNNaN2006-05-21
474321-Aug-19601960UnprovokedUSAStanding in knee-deep waterMLower right leg bitten, surgically amputated 1...NNaN1960-08-21
325011-Jun-19931993UnprovokedHONG KONGSwimmingMFATALYNaN1993-06-11
4485Jan-19641964InvalidNEW ZEALANDSnorkelingMNo injuryNaNInvalid1964-01-01
53630-May-20202020UnprovokedAUSTRALIASpearfishingMNo injury, swim fin bittenNBull shark2020-05-30
421629-Dec-19681968InvalidSOUTH AFRICAFreedivingMNo injuryNaNQuestionable incident1968-12-29
424318-May-19681968InvalidTANZANIASchooner sank during a stormNaN6 people rescued, 3 shark-scavenged bodies rec...NaNShark involvement not confirmed1968-05-18
256516-Dec-20022002UnprovokedAUSTRALIASwimmingMFATALYBull shark2002-12-16
80621-Dec-20172017ProvokedMALAYSIAFishing / WadingMMinor injury to thigh, PROVOKED INCIDENTNJuvenile nurse shark2017-12-21
375907-Feb-19821982UnprovokedUSADivingMFATAL Disappeared while diving, bathing suit &...YNaN1982-02-07
387927-Sep-19781978UnprovokedSOUTH AFRICASpearfishingMNo injury, shark took his catch, then towed & ...NWhite shark, 3.7 m [12']1978-09-27
88611-Jun-20172017UnprovokedAUSTRALIABody boardingMNo injury, board bittenNWhite shark, 4 m2017-06-11
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country \\\n", + "172 02 Oct-2023 2023 Unprovoked USA \n", + "2126 30-Jun-2007 2007 Unprovoked USA \n", + "4461 05-Mar-1964 1964 Unprovoked USA \n", + "1027 02-Jun-2016 2016 Unprovoked AUSTRALIA \n", + "2405 06-Aug-2004 2004 Unprovoked USA \n", + "3789 15-Jun-1981 1981 Watercraft ENGLAND \n", + "1646 11-Aug--2011 2011 Unprovoked USA \n", + "4256 04-Feb-1968 1968 Unprovoked AUSTRALIA \n", + "2239 21-May-2006 2006 Unprovoked BRAZIL \n", + "4743 21-Aug-1960 1960 Unprovoked USA \n", + "3250 11-Jun-1993 1993 Unprovoked HONG KONG \n", + "4485 Jan-1964 1964 Invalid NEW ZEALAND \n", + "536 30-May-2020 2020 Unprovoked AUSTRALIA \n", + "4216 29-Dec-1968 1968 Invalid SOUTH AFRICA \n", + "4243 18-May-1968 1968 Invalid TANZANIA \n", + "2565 16-Dec-2002 2002 Unprovoked AUSTRALIA \n", + "806 21-Dec-2017 2017 Provoked MALAYSIA \n", + "3759 07-Feb-1982 1982 Unprovoked USA \n", + "3879 27-Sep-1978 1978 Unprovoked SOUTH AFRICA \n", + "886 11-Jun-2017 2017 Unprovoked AUSTRALIA \n", + "\n", + " Activity Sex \\\n", + "172 Surfing F \n", + "2126 Swimming F \n", + "4461 Skin diving M \n", + "1027 Spearfishing M \n", + "2405 Swimming M \n", + "3789 Fishing M \n", + "1646 Swimming M \n", + "4256 Spearfishing M \n", + "2239 Surfing M \n", + "4743 Standing in knee-deep water M \n", + "3250 Swimming M \n", + "4485 Snorkeling M \n", + "536 Spearfishing M \n", + "4216 Freediving M \n", + "4243 Schooner sank during a storm NaN \n", + "2565 Swimming M \n", + "806 Fishing / Wading M \n", + "3759 Diving M \n", + "3879 Spearfishing M \n", + "886 Body boarding M \n", + "\n", + " Injury Fatal Y/N \\\n", + "172 Minor injury. Shark bit surfboard N \n", + "2126 Hand bitten N \n", + "4461 Minor injury, abdomen abraded when he collided... N \n", + "1027 No injury, but sharks repeatedly hit their fin... NaN \n", + "2405 Back, buttocks, left hand & left side of face ... N \n", + "3789 Minor injuries from shark that leapt aboard th... N \n", + "1646 Lower right leg bitten N \n", + "4256 No injury, speargun bitten N \n", + "2239 Injuries to left thigh, calf & foot N \n", + "4743 Lower right leg bitten, surgically amputated 1... N \n", + "3250 FATAL Y \n", + "4485 No injury NaN \n", + "536 No injury, swim fin bitten N \n", + "4216 No injury NaN \n", + "4243 6 people rescued, 3 shark-scavenged bodies rec... NaN \n", + "2565 FATAL Y \n", + "806 Minor injury to thigh, PROVOKED INCIDENT N \n", + "3759 FATAL Disappeared while diving, bathing suit &... Y \n", + "3879 No injury, shark took his catch, then towed & ... N \n", + "886 No injury, board bitten N \n", + "\n", + " Species Date_parsed \n", + "172 10' to 12' Galapagos shark 2023-10-02 \n", + "2126 NaN 2007-06-30 \n", + "4461 1.7 m [5.5'] shark 1964-03-05 \n", + "1027 Bronze whaler sharks x 3 2016-06-02 \n", + "2405 1.2 m [4'] shark 2004-08-06 \n", + "3789 13', 400-lb thresher shark NaT \n", + "1646 NaN NaT \n", + "4256 Bronze whaler shark, 3 m [10'] 1968-02-04 \n", + "2239 NaN 2006-05-21 \n", + "4743 NaN 1960-08-21 \n", + "3250 NaN 1993-06-11 \n", + "4485 Invalid 1964-01-01 \n", + "536 Bull shark 2020-05-30 \n", + "4216 Questionable incident 1968-12-29 \n", + "4243 Shark involvement not confirmed 1968-05-18 \n", + "2565 Bull shark 2002-12-16 \n", + "806 Juvenile nurse shark 2017-12-21 \n", + "3759 NaN 1982-02-07 \n", + "3879 White shark, 3.7 m [12'] 1978-09-27 \n", + "886 White shark, 4 m 2017-06-11 " + ] + }, + "execution_count": 150, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.sample(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 504 + }, + "executionInfo": { + "elapsed": 134, + "status": "ok", + "timestamp": 1780854311204, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "RRnBqvnIT9Wh", + "outputId": "6040f6ba-a989-4b34-ff3e-bc6d8e42d637" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsed
024th May2026UnprovokedAustraliaSpearfishingMBite wounds to the headYUndetermined Bull shark most likelyNaT
117th May2026QuestionableUSASurfingMBite wound to the handNBlue fish bite most probableNaT
216th May2026UnprovokedAustraliaSkindivingMSevere injuries both legsYGreat White SharkNaT
314th April2026UNprovokedMaldivesSwimmingMLeg strpped off flesh later amputated in hospitalNUnknownNaT
43rd April2026UnprovokedAustraliaSurfingMBite wound to R ankleNBronze WhalerNaT
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "0 24th May 2026 Unprovoked Australia Spearfishing M \n", + "1 17th May 2026 Questionable USA Surfing M \n", + "2 16th May 2026 Unprovoked Australia Skindiving M \n", + "3 14th April 2026 UNprovoked Maldives Swimming M \n", + "4 3rd April 2026 Unprovoked Australia Surfing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "0 Bite wounds to the head Y \n", + "1 Bite wound to the hand N \n", + "2 Severe injuries both legs Y \n", + "3 Leg strpped off flesh later amputated in hospital N \n", + "4 Bite wound to R ankle N \n", + "\n", + " Species Date_parsed \n", + "0 Undetermined Bull shark most likely NaT \n", + "1 Blue fish bite most probable NaT \n", + "2 Great White Shark NaT \n", + "3 Unknown NaT \n", + "4 Bronze Whaler NaT " + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Clean 3 - Normalize characters to establish same format date\n", + "shark_attack_df[\"Date\"] = (\n", + " shark_attack_df[\"Date\"]\n", + " .astype(str)\n", + " .str.strip()\n", + " .str.replace(\"`\", \"\", regex=False)\n", + " .str.replace(\".a\", \"\", regex=False)\n", + " .str.replace(\".b\", \"\", regex=False)\n", + " .str.replace(\"--\", \"-\", regex=False)\n", + " .str.replace(\".\", \"-\", regex=False)\n", + ")\n", + "shark_attack_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "id": "CwYc-KkuW9HB" + }, + "outputs": [], + "source": [ + "dates_with_year = shark_attack_df[\"Date\"][\n", + " shark_attack_df[\"Date\"].str.contains(r\"\\d{4}\", na=False)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "id": "xM72Gv3RYSmU" + }, + "outputs": [], + "source": [ + "dates_with_year = (\n", + " dates_with_year\n", + " .str.strip()\n", + " .str.replace(\"`\", \"\", regex=False)\n", + " .str.replace(\".a\", \"\", regex=False)\n", + " .str.replace(\".b\", \"\", regex=False)\n", + " .str.replace(\"--\", \"-\", regex=False)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "id": "h9E8dV09YxQc" + }, + "outputs": [], + "source": [ + "dates_with_year = (\n", + " dates_with_year\n", + " .str.replace(r\"^(\\d{2})\\s+([A-Za-z]{3})-(\\d{4})$\", r\"\\1-\\2-\\3\", regex=True)\n", + " .str.replace(r\"^(\\d{2})\\s+([A-Za-z]+)\\s+(\\d{4})$\", r\"\\1-\\2-\\3\", regex=True)\n", + " .str.replace(r\"^([A-Za-z]{3})-(\\d{4})$\", r\"01-\\1-\\2\", regex=True)\n", + " .str.replace(r\"^(\\d{4})$\", r\"01-Jan-\\1\", regex=True)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 37, + "status": "ok", + "timestamp": 1780854311356, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "dL7Bi17ZY1Pv", + "outputId": "a56a261c-a31f-40cf-f3ba-1a8442869c90" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "[ '09 Sep- 2023', '14-June 2023', '08-Jun 2023',\n", + " '28-May 2023', '24-May 2023', '21-May 2023',\n", + " '19 -May 2023', '09-Jul-2018-', 'May 2018',\n", + " '2017-06-05', '00-Feb-2017', '3rd-Oct-2016',\n", + " 'May 2016', '20-May2015', '13-May2014',\n", + " '29-Nov2013', 'December 2012', '07-July-2012',\n", + " '12-Jan 2011', '190Feb-2010', '31-July-2009',\n", + " '2008-01-30', 'November 2011', '2007-',\n", + " '09-Jul-2006-', 'July 2006', '24-Nov-2005-',\n", + " '02-Ap-2001', '13 -Nov-1999', 'May 1993',\n", + " '04-Feb 1993', 'May 1992', 'July 1991',\n", + " '03- Dec-1989', 'June 1983', '24-May 1983',\n", + " 'May 1982', 'of 1981', '12-30-1980',\n", + " '1980s', 'May 1979', '20-May 1975',\n", + " '1970s', '13 or 30-May-1967', 'Sep- 1966',\n", + " 'of 1996', 'May-Jun-1965', 'May 1965',\n", + " 'May 1964', 'May 1962', 'Jan-Jun-1962',\n", + " '1960s']\n", + "Length: 52, dtype: str" + ] + }, + "execution_count": 155, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parsed = pd.to_datetime(\n", + " dates_with_year,\n", + " errors=\"coerce\"\n", + ")\n", + "\n", + "dates_with_year[parsed.isna()].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": { + "id": "9ec78893-2741-480b-ba16-f010a350e5b3" + }, + "outputs": [], + "source": [ + "dates_with_year = (\n", + " dates_with_year\n", + "\n", + " # Espacios extra\n", + " .str.strip()\n", + "\n", + " # Corregir separadores\n", + " .str.replace(\"--\", \"-\", regex=False)\n", + " .str.replace(r\"\\s+\", \" \", regex=True)\n", + "\n", + " # Quitar guiones finales\n", + " .str.replace(r\"-$\", \"\", regex=True)\n", + "\n", + " # Corregir meses abreviados incorrectos\n", + " .str.replace(\"Ap-\", \"Apr-\", regex=False)\n", + "\n", + " # Casos específicos\n", + " .str.replace(\"190Feb-2010\", \"19-Feb-2010\", regex=False)\n", + " .str.replace(\"01-Jun-1018\", \"01-Jun-2018\", regex=False)\n", + " .str.replace(\"00-Feb-2017\", \"01-Feb-2017\", regex=False)\n", + "\n", + " # Unir cuando falta espacio o guión\n", + " .str.replace(r\"(\\d{2})-([A-Za-z]+)(\\d{4})\", r\"\\1-\\2-\\3\", regex=True)\n", + "\n", + " # Convertir \"May 2018\" → \"01-May-2018\"\n", + " .str.replace(r\"^([A-Za-z]+)\\s+(\\d{4})$\", r\"01-\\1-\\2\", regex=True)\n", + "\n", + " # Convertir \"24-May 1983\" → \"24-May-1983\"\n", + " .str.replace(r\"^(\\d{1,2}-[A-Za-z]+)\\s+(\\d{4})$\", r\"\\1-\\2\", regex=True)\n", + "\n", + " # Convertir \"04-Feb 1993\" → \"04-Feb-1993\"\n", + " .str.replace(r\"^(\\d{1,2}-[A-Za-z]{3})\\s+(\\d{4})$\", r\"\\1-\\2\", regex=True)\n", + "\n", + " # Convertir \"09 Sep- 2023\" → \"09-Sep-2023\"\n", + " .str.replace(r\"^(\\d{1,2})\\s+([A-Za-z]{3})-\\s*(\\d{4})$\", r\"\\1-\\2-\\3\", regex=True)\n", + "\n", + " # Convertir \"14-June 2023\" → \"14-June-2023\"\n", + " .str.replace(r\"^(\\d{1,2})-([A-Za-z]+)\\s+(\\d{4})$\", r\"\\1-\\2-\\3\", regex=True)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 75, + "status": "ok", + "timestamp": 1780854311446, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "czFTfD15ZAwF", + "outputId": "971f7d33-875d-4680-cb3a-5a3be07ca66d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "[ '14-June-2023', '19 -May 2023', '2017-06-05',\n", + " '3rd-Oct-2016', '01-December-2012', '07-July-2012',\n", + " '31-July-2009', '2008-01-30', '01-November-2011',\n", + " '2007', '01-July-2006', '13 -Nov-1999',\n", + " '01-July-1991', '03- Dec-1989', '01-June-1983',\n", + " '01-of-1981', '12-30-1980', '1980s',\n", + " '1970s', '13 or 30-May-1967', 'Sep- 1966',\n", + " '01-of-1996', 'May-Jun-1965', 'Jan-Jun-1962',\n", + " '1960s']\n", + "Length: 25, dtype: str" + ] + }, + "execution_count": 157, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parsed = pd.to_datetime(\n", + " dates_with_year,\n", + " errors=\"coerce\"\n", + ")\n", + "\n", + "dates_with_year[parsed.isna()].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 23, + "status": "ok", + "timestamp": 1780854311466, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "63b06de9-b2c7-4411-bd4d-a218304b79f6", + "outputId": "322a8234-cef2-4662-8ced-3c3ade29bea4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 4640 entries, 137 to 4804\n", + "Series name: Date\n", + "Non-Null Count Dtype\n", + "-------------- -----\n", + "4640 non-null str \n", + "dtypes: str(1)\n", + "memory usage: 122.3 KB\n" + ] + } + ], + "source": [ + "#direct replacement (If not day or mont replace wit 01 Jan\n", + "replace_dict = {\n", + " \"14-June-2023\": \"14-Jun-2023\",\n", + " \"19 -May 2023\": \"19-May-2023\",\n", + " \"2017-06-05\": \"05-Jun-2017\",\n", + " \"3rd-Oct-2016\": \"03-Oct-2016\",\n", + " \"01-December-2012\": \"01-Dec-2012\",\n", + " \"07-July-2012\": \"07-Jul-2012\",\n", + " \"31-July-2009\": \"31-Jul-2009\",\n", + " \"2008-01-30\": \"30-Jan-2008\",\n", + " \"01-November-2011\": \"01-Nov-2011\",\n", + " \"2007\": \"01-Jan-2007\",\n", + " \"01-July-2006\": \"01-Jul-2006\",\n", + " \"13 -Nov-1999\": \"13-Nov-1999\",\n", + " \"01-July-1991\": \"01-Jul-1991\",\n", + " \"03- Dec-1989\": \"03-Dec-1989\",\n", + " \"01-June-1983\": \"01-Jun-1983\",\n", + " \"01-of-1981\": \"01-Jan-1981\",\n", + " \"12-30-1980\": \"30-Dec-1980\",\n", + " \"1980s\": \"01-Jan-1980\",\n", + " \"1970s\": \"01-Jan-1970\",\n", + " \"13 or 30-May-1967\": \"21-May-1967\",\n", + " \"Sep- 1966\": \"01-Sep-1966\",\n", + " \"01-of-1996\": \"01-Jan-1996\",\n", + " \"May-Jun-1965\": \"15-May-1965\",\n", + " \"Jan-Jun-1962\": \"01-Jan-1962\",\n", + " \"1960s\": \"01-Jan-1960\"\n", + "}\n", + "\n", + "dates_with_year = dates_with_year.replace(replace_dict)\n", + "dates_with_year.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 31, + "status": "ok", + "timestamp": 1780854311501, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "snGMuIH5ZM3v", + "outputId": "77d6d6ba-0fb1-4ed9-e3ba-df198354460c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 159, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dates_with_year_2 = dates_with_year.copy()\n", + "pd.to_datetime(dates_with_year, format=\"%d-%b-%Y\", errors=\"coerce\").isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 504 + }, + "executionInfo": { + "elapsed": 112, + "status": "ok", + "timestamp": 1780854311616, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "ScV4TbfsZY8N", + "outputId": "3111de4c-8401-4423-882e-8aa16689bac9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsed
024th May2026UnprovokedAustraliaSpearfishingMBite wounds to the headYUndetermined Bull shark most likelyNaT
117th May2026QuestionableUSASurfingMBite wound to the handNBlue fish bite most probableNaT
216th May2026UnprovokedAustraliaSkindivingMSevere injuries both legsYGreat White SharkNaT
314th April2026UNprovokedMaldivesSwimmingMLeg strpped off flesh later amputated in hospitalNUnknownNaT
43rd April2026UnprovokedAustraliaSurfingMBite wound to R ankleNBronze WhalerNaT
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "0 24th May 2026 Unprovoked Australia Spearfishing M \n", + "1 17th May 2026 Questionable USA Surfing M \n", + "2 16th May 2026 Unprovoked Australia Skindiving M \n", + "3 14th April 2026 UNprovoked Maldives Swimming M \n", + "4 3rd April 2026 Unprovoked Australia Surfing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "0 Bite wounds to the head Y \n", + "1 Bite wound to the hand N \n", + "2 Severe injuries both legs Y \n", + "3 Leg strpped off flesh later amputated in hospital N \n", + "4 Bite wound to R ankle N \n", + "\n", + " Species Date_parsed \n", + "0 Undetermined Bull shark most likely NaT \n", + "1 Blue fish bite most probable NaT \n", + "2 Great White Shark NaT \n", + "3 Unknown NaT \n", + "4 Bronze Whaler NaT " + ] + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#4 Work dates without the years\n", + "shark_attack_df.loc[dates_with_year.index, \"Date\"] = dates_with_year\n", + "shark_attack_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 145, + "status": "ok", + "timestamp": 1780854311771, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "H9TYyr6HZued", + "outputId": "053c5d68-a3e3-4308-da82-a1b411deff64" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "[ '24th May', '17th May', '16th May', '14th April',\n", + " '3rd April', '26th March', '25th March', '22nd-23rd March',\n", + " '18th March', '14th March', '10th March', '5th March',\n", + " '22nd February', '6th February', '29th January', '24th January',\n", + " '20th January', '19th January', '18th January', '13th January',\n", + " '10th January', '8th January', '5th January', '3rd January',\n", + " '25th December', '21st December', '12th December', '9th December',\n", + " '27th November', '10th November', '9th November', '5th November',\n", + " '4th November', '14th October', '11th October', '7th October',\n", + " '29th September', '27th September', '6th September', '1st September',\n", + " '30th August', '18th August', '17th August', '16th August',\n", + " '7th August', '1st August', '28th July', '25th July',\n", + " '22nd July', '20th July', '19th July', '18th July',\n", + " '15th July', '6th July', '4th July', '29th June',\n", + " '25th June', '22nd June', '17th June', nan,\n", + " '31st May', '27-Feb-25', '10-Jul-202', '']\n", + "Length: 64, dtype: str" + ] + }, + "execution_count": 161, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.loc[\n", + " ~shark_attack_df[\"Date\"].astype(str).str.contains(r\"\\d{4}\", na=False),\n", + " \"Date\"\n", + "].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "id": "PpAvl7bzZ7UI" + }, + "outputs": [], + "source": [ + "#5 Month adjustment\n", + "month_map = {\n", + " \"January\": \"Jan\",\n", + " \"February\": \"Feb\",\n", + " \"March\": \"Mar\",\n", + " \"April\": \"Apr\",\n", + " \"May\": \"May\",\n", + " \"June\": \"Jun\",\n", + " \"July\": \"Jul\",\n", + " \"August\": \"Aug\",\n", + " \"September\": \"Sep\",\n", + " \"October\": \"Oct\",\n", + " \"November\": \"Nov\",\n", + " \"December\": \"Dec\"\n", + "}\n", + "\n", + "# Filas sin año en Date\n", + "mask = ~shark_attack_df[\"Date\"].astype(str).str.contains(r\"\\d{4}\", na=False)\n", + "\n", + "# Eliminar st, nd, rd, th\n", + "shark_attack_df.loc[mask, \"Date\"] = (\n", + " shark_attack_df.loc[mask, \"Date\"]\n", + " .str.replace(r\"(\\d+)(st|nd|rd|th)\", r\"\\1\", regex=True)\n", + ")\n", + "\n", + "# Extraer día y mes\n", + "temp = shark_attack_df.loc[mask, \"Date\"].str.extract(\n", + " r\"(\\d+)\\s+([A-Za-z]+)\"\n", + ")\n", + "\n", + "# Convertir a formato DD-MMM\n", + "shark_attack_df.loc[mask, \"Date\"] = (\n", + " temp[0].str.zfill(2)\n", + " + \"-\"\n", + " + temp[1].map(month_map)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": { + "id": "eU0Yz7wOaYKW" + }, + "outputs": [], + "source": [ + "shark_attack_df.loc[mask, \"Date\"] = (\n", + " shark_attack_df.loc[mask, \"Date\"]\n", + " + \"-\"\n", + " + shark_attack_df.loc[mask, \"Year\"].astype(int).astype(str)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 539 + }, + "executionInfo": { + "elapsed": 51, + "status": "ok", + "timestamp": 1780854311842, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "1NQO_dX_ajlH", + "outputId": "94664905-3d62-461a-8a22-3d53e8b99704" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsed
024-May-2026-20262026UnprovokedAustraliaSpearfishingMBite wounds to the headYUndetermined Bull shark most likelyNaT
117-May-2026-20262026QuestionableUSASurfingMBite wound to the handNBlue fish bite most probableNaT
216-May-2026-20262026UnprovokedAustraliaSkindivingMSevere injuries both legsYGreat White SharkNaT
314-Apr-2026-20262026UNprovokedMaldivesSwimmingMLeg strpped off flesh later amputated in hospitalNUnknownNaT
403-Apr-2026-20262026UnprovokedAustraliaSurfingMBite wound to R ankleNBronze WhalerNaT
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "0 24-May-2026-2026 2026 Unprovoked Australia Spearfishing M \n", + "1 17-May-2026-2026 2026 Questionable USA Surfing M \n", + "2 16-May-2026-2026 2026 Unprovoked Australia Skindiving M \n", + "3 14-Apr-2026-2026 2026 UNprovoked Maldives Swimming M \n", + "4 03-Apr-2026-2026 2026 Unprovoked Australia Surfing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "0 Bite wounds to the head Y \n", + "1 Bite wound to the hand N \n", + "2 Severe injuries both legs Y \n", + "3 Leg strpped off flesh later amputated in hospital N \n", + "4 Bite wound to R ankle N \n", + "\n", + " Species Date_parsed \n", + "0 Undetermined Bull shark most likely NaT \n", + "1 Blue fish bite most probable NaT \n", + "2 Great White Shark NaT \n", + "3 Unknown NaT \n", + "4 Bronze Whaler NaT " + ] + }, + "execution_count": 164, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.loc[mask, \"Date\"] = (\n", + " shark_attack_df.loc[mask, \"Date\"]\n", + " + \"-\"\n", + " + shark_attack_df.loc[mask, \"Year\"].astype(int).astype(str)\n", + ")\n", + "shark_attack_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": { + "id": "TQvY373obHD8" + }, + "outputs": [], + "source": [ + "#format stablished for the changes rows and NAT Caleaning\n", + "shark_attack_df[\"Date\"] = pd.to_datetime(\n", + " shark_attack_df[\"Date\"],\n", + " format=\"%d-%b-%Y\",\n", + " errors=\"coerce\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 255, + "status": "ok", + "timestamp": 1780854312227, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "rYIcB_QibSlm", + "outputId": "03b15876-1bb0-4f0f-8c28-3be2b56f12c0" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(161)" + ] + }, + "execution_count": 166, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Date\"].isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 242, + "status": "ok", + "timestamp": 1780854312256, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "mRO11tOYbZNo", + "outputId": "d9e1c8d8-d7cc-4ebd-b643-7524a6770d88" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "['NaT']\n", + "Length: 1, dtype: datetime64[us]" + ] + }, + "execution_count": 167, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.loc[\n", + " ~shark_attack_df[\"Date\"].astype(str).str.contains(r\"\\d{4}\", na=False),\n", + " \"Date\"\n", + "].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": { + "id": "vnyoJ5u7bhoJ" + }, + "outputs": [], + "source": [ + "mask = shark_attack_df[\"Date\"].isna()\n", + "\n", + "shark_attack_df.loc[mask, \"Date\"] = pd.to_datetime(\n", + " \"01-Jan-\" +\n", + " shark_attack_df.loc[mask, \"Year\"].astype(int).astype(str),\n", + " format=\"%d-%b-%Y\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 217, + "status": "ok", + "timestamp": 1780854312513, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "b4uiLTJrdaxO", + "outputId": "2a1bcbee-c419-4e42-e693-0439b317221e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 169, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Date\"].isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 66, + "status": "ok", + "timestamp": 1780854312597, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "YyzKoQmNdg-x", + "outputId": "b02cedc1-18eb-4044-efb6-c5cb76965d15" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('\n", + "Index: 4785 entries, 0 to 4804\n", + "Data columns (total 11 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 4785 non-null datetime64[us]\n", + " 1 Year 4785 non-null int64 \n", + " 2 Type 4771 non-null str \n", + " 3 Country 4773 non-null str \n", + " 4 Activity 4485 non-null str \n", + " 5 Sex 4439 non-null str \n", + " 6 Injury 4764 non-null str \n", + " 7 Fatal Y/N 4439 non-null object \n", + " 8 Species 3106 non-null str \n", + " 9 Date_parsed 4483 non-null datetime64[ns]\n", + " 10 Date_Year 4785 non-null int32 \n", + "dtypes: datetime64[ns](1), datetime64[us](1), int32(1), int64(1), object(1), str(6)\n", + "memory usage: 780.3+ KB\n" + ] + } + ], + "source": [ + "shark_attack_df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oDPf4UC4j4by" + }, + "source": [ + "**COUNTRY COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 17, + "status": "ok", + "timestamp": 1780854312877, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "oECDluVSesRT", + "outputId": "3c50cdc7-a3ed-4c90-d774-eba0dc4cd56e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(12)" + ] + }, + "execution_count": 176, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Country\"].isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "executionInfo": { + "elapsed": 48, + "status": "ok", + "timestamp": 1780854312928, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "MV3GY_a5e0nZ", + "outputId": "18c5667e-1f4c-4aa9-84bc-d47ef3cbe909" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_Year
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Date, Year, Type, Country, Activity, Sex, Injury, Fatal Y/N, Species , Date_parsed, Date_Year]\n", + "Index: []" + ] + }, + "execution_count": 177, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\n", + " shark_attack_df[\"Country\"].astype(str).str.strip() == \"\"\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 24, + "status": "ok", + "timestamp": 1780854312950, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "_pwUugYgfAx0", + "outputId": "3b7803d2-99ec-4bc0-eb0f-327e90b4743a" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_Year
8142017-11-132017UnprovokedNaNSurfingMPuncture wounds to feetNNaNNaT2017
12832014-08-012014InvalidNaNSea disasterMShark involvement prior to death not confirmedNaNShark involvement not confirmed2014-08-012014
37191983-01-011983UnprovokedNaNSwimmingMLeft leg bittenNNaNNaT1983
41491970-11-011970UnprovokedNaNNaNMExtensive injuriesNNaN1970-11-011970
41581970-08-021970InvalidNaNSea Disaster Sinking of ferryboat ChristinaNaNSharks scavenged on bodies, but no record of t...NaNShark involvement prior to death was not confi...1970-08-021970
41591970-07-051970UnprovokedNaNNaNMFinger or toe severedNMako shark1970-07-051970
41661970-04-011970ProvokedNaNFreedivingMArm abraded & lacerated. Recorded as PROVOKED ...NWobbegong shark1970-04-011970
41701970-02-051970UnprovokedNaNWadingFLacerations to lower legNCarpet shark1970-02-051970
41961969-08-011969UnprovokedNaNNaNMAm laceratedNNaN1969-08-011969
43761965-10-211965UnprovokedNaNThe boat Caribou II sankMSurvivedNNaN1965-10-211965
44321964-09-271964InvalidNaNSpearfishingMDisappeared, probable drowning but sharks in a...NaNShark involvement prior to death was not confi...1964-09-271964
47891960-01-261960Sea DisasterNaNPortuguese Airliner with 9 people aboard went ...NaNAs searchers approached wreckage, sharks circl...NNaN1960-01-261960
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country \\\n", + "814 2017-11-13 2017 Unprovoked NaN \n", + "1283 2014-08-01 2014 Invalid NaN \n", + "3719 1983-01-01 1983 Unprovoked NaN \n", + "4149 1970-11-01 1970 Unprovoked NaN \n", + "4158 1970-08-02 1970 Invalid NaN \n", + "4159 1970-07-05 1970 Unprovoked NaN \n", + "4166 1970-04-01 1970 Provoked NaN \n", + "4170 1970-02-05 1970 Unprovoked NaN \n", + "4196 1969-08-01 1969 Unprovoked NaN \n", + "4376 1965-10-21 1965 Unprovoked NaN \n", + "4432 1964-09-27 1964 Invalid NaN \n", + "4789 1960-01-26 1960 Sea Disaster NaN \n", + "\n", + " Activity Sex \\\n", + "814 Surfing M \n", + "1283 Sea disaster M \n", + "3719 Swimming M \n", + "4149 NaN M \n", + "4158 Sea Disaster Sinking of ferryboat Christina NaN \n", + "4159 NaN M \n", + "4166 Freediving M \n", + "4170 Wading F \n", + "4196 NaN M \n", + "4376 The boat Caribou II sank M \n", + "4432 Spearfishing M \n", + "4789 Portuguese Airliner with 9 people aboard went ... NaN \n", + "\n", + " Injury Fatal Y/N \\\n", + "814 Puncture wounds to feet N \n", + "1283 Shark involvement prior to death not confirmed NaN \n", + "3719 Left leg bitten N \n", + "4149 Extensive injuries N \n", + "4158 Sharks scavenged on bodies, but no record of t... NaN \n", + "4159 Finger or toe severed N \n", + "4166 Arm abraded & lacerated. Recorded as PROVOKED ... N \n", + "4170 Lacerations to lower leg N \n", + "4196 Am lacerated N \n", + "4376 Survived N \n", + "4432 Disappeared, probable drowning but sharks in a... NaN \n", + "4789 As searchers approached wreckage, sharks circl... N \n", + "\n", + " Species Date_parsed Date_Year \n", + "814 NaN NaT 2017 \n", + "1283 Shark involvement not confirmed 2014-08-01 2014 \n", + "3719 NaN NaT 1983 \n", + "4149 NaN 1970-11-01 1970 \n", + "4158 Shark involvement prior to death was not confi... 1970-08-02 1970 \n", + "4159 Mako shark 1970-07-05 1970 \n", + "4166 Wobbegong shark 1970-04-01 1970 \n", + "4170 Carpet shark 1970-02-05 1970 \n", + "4196 NaN 1969-08-01 1969 \n", + "4376 NaN 1965-10-21 1965 \n", + "4432 Shark involvement prior to death was not confi... 1964-09-27 1964 \n", + "4789 NaN 1960-01-26 1960 " + ] + }, + "execution_count": 178, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.loc[\n", + " shark_attack_df[\"Country\"].isna()\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 137, + "status": "ok", + "timestamp": 1780854313085, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "X9OKFPHafJEq", + "outputId": "7f8775eb-abe3-465c-cdde-91018352f52e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#NaN Drop - Not relevant data\n", + "\n", + "shark_attack_df = shark_attack_df.dropna(subset=[\"Country\"])\n", + "shark_attack_df[\"Country\"].isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "id": "O1Wp6e3ifd5e" + }, + "outputs": [], + "source": [ + "#Lower case and look for the ones that are not countries\n", + "shark_attack_df[\"Country\"] = (\n", + " shark_attack_df[\"Country\"]\n", + " .str.lower()\n", + " .str.strip()\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 64, + "status": "ok", + "timestamp": 1780854313153, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "iVjSXV0IfpIc", + "outputId": "c30c50c5-3ae8-422c-b837-60d38752757d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['admiralty islands',\n", + " 'angola',\n", + " 'antigua',\n", + " 'argentina',\n", + " 'aruba',\n", + " 'atlantic ocean',\n", + " 'australia',\n", + " 'azores',\n", + " 'bahamas',\n", + " 'bangladesh',\n", + " 'belize',\n", + " 'bermuda',\n", + " 'brazil',\n", + " 'british isles',\n", + " 'british overseas territory',\n", + " 'british virgin islands',\n", + " 'british west indies',\n", + " 'canada',\n", + " 'canary islands',\n", + " 'cape verde',\n", + " 'caribbean sea',\n", + " 'cayman islands',\n", + " 'chile',\n", + " 'china',\n", + " 'colombia',\n", + " 'columbia',\n", + " 'comoros',\n", + " 'coral sea',\n", + " 'costa rica',\n", + " 'croatia',\n", + " 'cuba',\n", + " 'diego garcia',\n", + " 'dominican republic',\n", + " 'ecuador',\n", + " 'egypt',\n", + " 'egypt / israel',\n", + " 'el salvador',\n", + " 'england',\n", + " 'federated states of micronesia',\n", + " 'fiji',\n", + " 'france',\n", + " 'french polynesia',\n", + " 'grand cayman',\n", + " 'greece',\n", + " 'grenada',\n", + " 'guam',\n", + " 'gulf of aden',\n", + " 'hawaii',\n", + " 'honduras',\n", + " 'hong kong',\n", + " 'india',\n", + " 'indonesia',\n", + " 'iran',\n", + " 'iraq',\n", + " 'ireland',\n", + " 'israel',\n", + " 'italy',\n", + " 'jamaica',\n", + " 'japan',\n", + " 'johnston island',\n", + " 'jordan',\n", + " 'kenya',\n", + " 'kiribati',\n", + " 'liberia',\n", + " 'libya',\n", + " 'madagascar',\n", + " 'malaysia',\n", + " 'maldive islands',\n", + " 'maldives',\n", + " 'malta',\n", + " 'marshall islands',\n", + " 'mauritius',\n", + " 'mexico',\n", + " 'micronesia',\n", + " 'mid atlantic ocean',\n", + " 'montenegro',\n", + " 'morocco',\n", + " 'mozambique',\n", + " 'namibia',\n", + " 'nevis',\n", + " 'new britain',\n", + " 'new caledonia',\n", + " 'new guinea',\n", + " 'new zealand',\n", + " 'nicaragua',\n", + " 'nigeria',\n", + " 'north atlantic ocean',\n", + " 'north pacific ocean',\n", + " 'north sea',\n", + " 'northern arabian sea',\n", + " 'norway',\n", + " 'okinawa',\n", + " 'pacific ocean',\n", + " 'palau',\n", + " 'palestinian territories',\n", + " 'panama',\n", + " 'papua new guinea',\n", + " 'persian gulf',\n", + " 'philippines',\n", + " 'portugal',\n", + " 'puerto rico',\n", + " 'red sea',\n", + " 'red sea / indian ocean',\n", + " 'reunion',\n", + " 'reunion island',\n", + " 'russia',\n", + " 'samoa',\n", + " 'saudi arabia',\n", + " 'scotland',\n", + " 'senegal',\n", + " 'seychelles',\n", + " 'sierra leone',\n", + " 'singapore',\n", + " 'solomon islands',\n", + " 'somalia',\n", + " 'south africa',\n", + " 'south atlantic ocean',\n", + " 'south china sea',\n", + " 'south korea',\n", + " 'south pacific ocean',\n", + " 'spain',\n", + " 'sri lanka',\n", + " 'st helena, british overseas territory',\n", + " 'st kitts / nevis',\n", + " 'st martin',\n", + " 'st. maartin',\n", + " 'st. martin',\n", + " 'sudan',\n", + " 'taiwan',\n", + " 'tanzania',\n", + " 'thailand',\n", + " 'tobago',\n", + " 'tonga',\n", + " 'trinidad',\n", + " 'trinidad & tobago',\n", + " 'tunisia',\n", + " 'turkey',\n", + " 'turks & caicos',\n", + " 'turks and caicos',\n", + " 'united arab emirates',\n", + " 'united arab emirates (uae)',\n", + " 'united kingdom',\n", + " 'uruguay',\n", + " 'us virgin islands',\n", + " 'usa',\n", + " 'vanuatu',\n", + " 'venezuela',\n", + " 'vietnam',\n", + " 'western samoa',\n", + " 'yemen']" + ] + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(shark_attack_df[\"Country\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": { + "id": "TARYkumCfvQK" + }, + "outputs": [], + "source": [ + "countries = [['angola', 'antigua and barbuda', 'argentina', 'aruba', 'australia', 'bahamas', 'bangladesh', 'belize', 'bermuda', 'brazil', 'cabo verde', 'canada', 'cayman islands', 'chile', 'china', 'colombia', 'comoros', 'coral sea', 'costa rica', 'croatia', 'cuba', 'dominican republic', 'ecuador', 'egypt', 'el salvador', 'fiji', 'france', 'french polynesia', 'grand cayman', 'greece', 'grenada', 'guam', 'honduras', 'hong kong', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'johnston island', 'jordan', 'kenya', 'kiribati', 'liberia', 'libya', 'madagascar', 'malaysia', 'maldives', 'malta', 'marshall islands', 'mauritius', 'mexico', 'micronesia', 'montenegro', 'morocco', 'mozambique', 'namibia', 'new britain', 'new caledonia', 'new guinea', 'new zealand', 'nicaragua', 'nigeria', 'north pacific ocean', 'norway', 'palau', 'panama', 'papua new guinea', 'philippines', 'portugal', 'puerto rico', 'red sea', 'red sea / indian ocean', 'russian federation', 'saint kitts and nevis', 'saint martin', 'samoa', 'saudi arabia', 'senegal', 'seychelles', 'sierra leone', 'singapore', 'solomon islands', 'somalia', 'south africa', 'south korea', 'south pacific ocean', 'spain', 'sri lanka', 'st helena, british overseas territory', 'sudan', 'taiwan', 'tanzania', 'thailand', 'tonga', 'trinidad and tobago', 'tunisia', 'turkiye', 'turks and caicos islands', 'united arab emirates', 'united kingdom', 'united states', 'uruguay', 'vanuatu', 'venezuela', 'vietnam', 'yemen']]" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 117, + "status": "ok", + "timestamp": 1780854313275, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "f0yOSMv2f3G_", + "outputId": "a024c340-bf8d-4f97-96db-96831ba2485b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[ 'australia', 'usa',\n", + " 'maldives', 'bahamas',\n", + " 'new caledonia', 'cayman islands',\n", + " 'brazil', 'us virgin islands',\n", + " 'mozambique', 'french polynesia',\n", + " ...\n", + " 'north pacific ocean', 'federated states of micronesia',\n", + " 'mid atlantic ocean', 'admiralty islands',\n", + " 'british west indies', 'south atlantic ocean',\n", + " 'persian gulf', 'red sea / indian ocean',\n", + " 'north sea', 'nicaragua']\n", + "Length: 150, dtype: str\n" + ] + } + ], + "source": [ + "invalid_countries = shark_attack_df[\n", + " ~shark_attack_df[\"Country\"].isin(countries)\n", + "][\"Country\"].unique()\n", + "\n", + "print(invalid_countries)" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 102, + "status": "ok", + "timestamp": 1780854313378, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "kmUSID6sgCpB", + "outputId": "8185e478-ab60-4fb2-d473-f0dd751af964" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "150" + ] + }, + "execution_count": 184, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(invalid_countries)" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 86, + "status": "ok", + "timestamp": 1780854313381, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "L-Q8raOUgGzU", + "outputId": "1acb80b5-46da-4146-c984-12855bbce86b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[['angola', 'antigua and barbuda', 'argentina', 'aruba', 'australia', 'bahamas', 'bangladesh', 'belize', 'bermuda', 'brazil', 'cabo verde', 'canada', 'cayman islands', 'chile', 'china', 'colombia', 'comoros', 'coral sea', 'costa rica', 'croatia', 'cuba', 'dominican republic', 'ecuador', 'egypt', 'el salvador', 'fiji', 'france', 'french polynesia', 'grand cayman', 'greece', 'grenada', 'guam', 'honduras', 'hong kong', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'johnston island', 'jordan', 'kenya', 'kiribati', 'liberia', 'libya', 'madagascar', 'malaysia', 'maldives', 'malta', 'marshall islands', 'mauritius', 'mexico', 'micronesia', 'montenegro', 'morocco', 'mozambique', 'namibia', 'new britain', 'new caledonia', 'new guinea', 'new zealand', 'nicaragua', 'nigeria', 'north pacific ocean', 'norway', 'palau', 'panama', 'papua new guinea', 'philippines', 'portugal', 'puerto rico', 'red sea', 'red sea / indian ocean', 'russian federation', 'saint kitts and nevis', 'saint martin', 'samoa', 'saudi arabia', 'senegal', 'seychelles', 'sierra leone', 'singapore', 'solomon islands', 'somalia', 'south africa', 'south korea', 'south pacific ocean', 'spain', 'sri lanka', 'st helena, british overseas territory', 'sudan', 'taiwan', 'tanzania', 'thailand', 'tonga', 'trinidad and tobago', 'tunisia', 'turkiye', 'turks and caicos islands', 'united arab emirates', 'united kingdom', 'united states', 'uruguay', 'vanuatu', 'venezuela', 'vietnam', 'yemen']]\n" + ] + } + ], + "source": [ + "print(countries)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": { + "id": "xO0VVGRYgJsM" + }, + "outputs": [], + "source": [ + "#2 Replace manual for real countries in the country list\n", + "replace_dict = {\n", + " #Countries\n", + " \"usa\": \"united states\",\n", + " \"columbia\": \"colombia\",\n", + " \"maldive islands\": \"maldives\",\n", + " \"cape verde\": \"cabo verde\",\n", + " \"south korea\": \"south korea\",\n", + " \"vietnam\": \"vietnam\",\n", + " \"russia\": \"russian federation\",\n", + " \"tanzania\": \"tanzania\",\n", + " \"venezuela\": \"venezuela\",\n", + " \"iran\": \"iran\",\n", + " \"turkey\": \"turkiye\",\n", + " \"western samoa\": \"samoa\",\n", + " \"trinidad\": \"trinidad and tobago\",\n", + " \"tobago\": \"trinidad and tobago\",\n", + " \"trinidad & tobago\": \"trinidad and tobago\",\n", + " \"antigua\": \"antigua and barbuda\",\n", + " \"hawaii\": \"united states\",\n", + " \"england\": \"united kingdom\",\n", + " \"scotland\": \"united kingdom\",\n", + " \"british isles\": \"united kingdom\",\n", + " \"canary islands\": \"spain\",\n", + " \"azores\": \"portugal\",\n", + " \"reunion\": \"france\",\n", + " \"reunion island\": \"france\",\n", + " \"okinawa\": \"japan\",\n", + " \"us virgin islands\": \"united states\",\n", + " \"british virgin islands\": \"united kingdom\",\n", + " \"turks & caicos\": \"turks and caicos islands\",\n", + " \"turks and caicos\": \"turks and caicos islands\",\n", + " \"st martin\": \"saint martin\",\n", + " \"st. martin\": \"saint martin\",\n", + " \"st. maartin\": \"sint maarten\",\n", + " \"nevis\": \"saint kitts and nevis\",\n", + " \"st kitts / nevis\": \"saint kitts and nevis\",\n", + " \"united arab emirates (uae)\": \"united arab emirates\",\n", + " \"federated states of micronesia\": \"micronesia\",\n", + " \"south china sea\" : \"china\",\n", + " \"new guinea\": \"papua new guinea\",\n", + " \"new britain\" : \"papua new guinea\",\n", + " \"grenada\" : \"trinidad and tobago\"\n", + "\n", + " }\n", + "\n", + "shark_attack_df[\"Country\"] = (\n", + " shark_attack_df[\"Country\"]\n", + " .replace(replace_dict)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 21, + "status": "ok", + "timestamp": 1780854313421, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "c5h8308PgZhd", + "outputId": "7c43aba5-2ee4-4966-8745-57b55f0e744d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[ 'australia', 'united states', 'maldives',\n", + " 'bahamas', 'new caledonia', 'cayman islands',\n", + " 'brazil', 'mozambique', 'french polynesia',\n", + " 'samoa',\n", + " ...\n", + " 'red sea', 'north pacific ocean', 'mid atlantic ocean',\n", + " 'admiralty islands', 'british west indies', 'south atlantic ocean',\n", + " 'persian gulf', 'red sea / indian ocean', 'north sea',\n", + " 'nicaragua']\n", + "Length: 125, dtype: str\n" + ] + } + ], + "source": [ + "invalid_countries_2 = shark_attack_df[\n", + " ~shark_attack_df[\"Country\"].isin(countries)\n", + "][\"Country\"].unique()\n", + "\n", + "print(invalid_countries_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 490 + }, + "executionInfo": { + "elapsed": 15, + "status": "ok", + "timestamp": 1780854313437, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "WagoFOLVghbD", + "outputId": "1c7248be-da71-491e-eac5-1e737a482121" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Country\n", + "united states 2096\n", + "australia 892\n", + "south africa 451\n", + "bahamas 123\n", + "brazil 114\n", + " ... \n", + "british west indies 1\n", + "south atlantic ocean 1\n", + "red sea / indian ocean 1\n", + "north sea 1\n", + "nicaragua 1\n", + "Name: count, Length: 125, dtype: int64" + ] + }, + "execution_count": 188, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\n", + " shark_attack_df[\"Country\"].isin(invalid_countries_2)\n", + "][\"Country\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "metadata": { + "id": "pBM8fszfgutm" + }, + "outputs": [], + "source": [ + "#Not countries\n", + "\n", + "not_country = [\"atlantic ocean\" ,\n", + " \"caribbean sea\",\n", + " \"pacific ocean\" ,\n", + " \"mid atlantic ocean\" ,\n", + " \"persian gulf\" ,\n", + " \"st helena\",\n", + " \"british overseas territory\" ,\n", + " \"admiralty islands\",\n", + " \"british west indies\",\n", + " \"south atlantic ocean\",\n", + " \"red sea coral sea \",\n", + " \"northern arabian sea\",\n", + " \"north atlantic ocean\",\n", + " \"british overseas territory\"\n", + " \"egypt / israel\",\n", + " \"sint maarten\",\n", + " \"gulf of aden\",\n", + " \"palestinian territories\",\n", + " \"diego garcia\",\n", + " \"north sea\",\n", + " \"south pacific ocean\",\n", + " \"red sea / indian ocean\",\n", + " \"red sea\",\n", + " \"coral sea\",\n", + " \"guam\",\n", + " \"johnston island\",\n", + " \"kiribati\",\n", + " \"north pacific ocean\",\n", + " \"british overseas territory\"\n", + "\n", + "\n", + "]\n", + "shark_attack_df = shark_attack_df[\n", + " ~shark_attack_df[\"Country\"].isin(not_country)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 490 + }, + "executionInfo": { + "elapsed": 33, + "status": "ok", + "timestamp": 1780854313611, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "kjEFkLfzg88L", + "outputId": "8ea67eb5-eb32-420b-c9ab-a56c46c63d67" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Country\n", + "united states 2096\n", + "australia 892\n", + "south africa 451\n", + "bahamas 123\n", + "brazil 114\n", + " ... \n", + "namibia 1\n", + "bangladesh 1\n", + "singapore 1\n", + "sudan 1\n", + "nicaragua 1\n", + "Name: count, Length: 101, dtype: int64" + ] + }, + "execution_count": 190, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Country\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 53, + "status": "ok", + "timestamp": 1780854313657, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "qDrXAORShDvE", + "outputId": "917f8509-c884-47c0-8cd9-ea1898b603b0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['angola', 'antigua and barbuda', 'argentina', 'aruba', 'australia', 'bahamas', 'bangladesh', 'belize', 'bermuda', 'brazil', 'cabo verde', 'canada', 'cayman islands', 'chile', 'china', 'colombia', 'comoros', 'costa rica', 'croatia', 'cuba', 'dominican republic', 'ecuador', 'egypt', 'egypt / israel', 'el salvador', 'fiji', 'france', 'french polynesia', 'grand cayman', 'greece', 'honduras', 'hong kong', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'jordan', 'kenya', 'liberia', 'libya', 'madagascar', 'malaysia', 'maldives', 'malta', 'marshall islands', 'mauritius', 'mexico', 'micronesia', 'montenegro', 'morocco', 'mozambique', 'namibia', 'new caledonia', 'new zealand', 'nicaragua', 'nigeria', 'norway', 'palau', 'panama', 'papua new guinea', 'philippines', 'portugal', 'puerto rico', 'russian federation', 'saint kitts and nevis', 'saint martin', 'samoa', 'saudi arabia', 'senegal', 'seychelles', 'sierra leone', 'singapore', 'solomon islands', 'somalia', 'south africa', 'south korea', 'spain', 'sri lanka', 'st helena, british overseas territory', 'sudan', 'taiwan', 'tanzania', 'thailand', 'tonga', 'trinidad and tobago', 'tunisia', 'turkiye', 'turks and caicos islands', 'united arab emirates', 'united kingdom', 'united states', 'uruguay', 'vanuatu', 'venezuela', 'vietnam', 'yemen']\n" + ] + } + ], + "source": [ + "countries_df = sorted(\n", + " shark_attack_df[\"Country\"]\n", + " .dropna()\n", + " .unique()\n", + " .tolist()\n", + ")\n", + "\n", + "print(countries_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 97, + "status": "ok", + "timestamp": 1780854313756, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "jx8vFDQOhMpN", + "outputId": "81545b54-ef69-455b-9f7a-ff4db9aa214f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 4732 entries, 0 to 4804\n", + "Data columns (total 11 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 4732 non-null datetime64[us]\n", + " 1 Year 4732 non-null int64 \n", + " 2 Type 4718 non-null str \n", + " 3 Country 4732 non-null str \n", + " 4 Activity 4439 non-null str \n", + " 5 Sex 4395 non-null str \n", + " 6 Injury 4711 non-null str \n", + " 7 Fatal Y/N 4393 non-null object \n", + " 8 Species 3078 non-null str \n", + " 9 Date_parsed 4437 non-null datetime64[ns]\n", + " 10 Date_Year 4732 non-null int32 \n", + "dtypes: datetime64[ns](1), datetime64[us](1), int32(1), int64(1), object(1), str(6)\n", + "memory usage: 790.4+ KB\n" + ] + } + ], + "source": [ + "shark_attack_df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "86pextVKiSLN" + }, + "source": [ + "**SEX COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 398 + }, + "executionInfo": { + "elapsed": 26, + "status": "ok", + "timestamp": 1780854313786, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "TMGHUVOOib1d", + "outputId": "ca3b4698-480d-4f2f-ef81-d7ad78b08209" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "M 3702\n", + "F 681\n", + "NaN 337\n", + "M 5\n", + "? 2\n", + "F 2\n", + " M 1\n", + "m 1\n", + "lli 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 193, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# STATUS BEFORE THE CLEANING\n", + "\n", + "shark_attack_df[\"Sex\"].value_counts(dropna=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": { + "id": "Skds9JqrkKGM" + }, + "outputs": [], + "source": [ + "# Remove extra spaces\n", + "\n", + "shark_attack_df[\"Sex\"] = shark_attack_df[\"Sex\"].str.strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": { + "id": "I3xxdCnQkQJB" + }, + "outputs": [], + "source": [ + "# Standardize uppercase / lowercase\n", + "\n", + "shark_attack_df[\"Sex\"] = shark_attack_df[\"Sex\"].str.upper()" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": { + "id": "Lehy2vekkTdQ" + }, + "outputs": [], + "source": [ + "# Replace M * 2 with M\n", + "\n", + "shark_attack_df[\"Sex\"] = shark_attack_df[\"Sex\"].replace({\n", + " \"M X 2\": \"M\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": { + "id": "YStZtr59kWSm" + }, + "outputs": [], + "source": [ + "# Replace unclear values with Unknown\n", + "\n", + "shark_attack_df.loc[\n", + " (shark_attack_df[\"Sex\"] != \"M\") &\n", + " (shark_attack_df[\"Sex\"] != \"F\"),\n", + " \"Sex\"\n", + "] = \"Unknown\"" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 210 + }, + "executionInfo": { + "elapsed": 52, + "status": "ok", + "timestamp": 1780854314021, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "uJRnQEJ-kZ5o", + "outputId": "753feeb6-8b5f-4bda-82be-2a4f4e15c1f7" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "M 3709\n", + "F 683\n", + "Unknown 340\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 198, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# STATUS AFTER THE CLEANING\n", + "\n", + "shark_attack_df[\"Sex\"].value_counts(dropna=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "E5TCa6jjkf8C" + }, + "source": [ + "**TYPE COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 554 + }, + "executionInfo": { + "elapsed": 100, + "status": "ok", + "timestamp": 1780854314124, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "WTOPhIEmkfDR", + "outputId": "471205b8-7040-4501-ca2b-064dc69c894f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Type\n", + "Unprovoked 3632\n", + "Provoked 425\n", + "Invalid 337\n", + "Watercraft 216\n", + "Sea Disaster 73\n", + "Questionable 27\n", + "NaN 14\n", + " Provoked 2\n", + "UNprovoked 1\n", + "unprovoked 1\n", + "? 1\n", + "Unconfirmed 1\n", + "Unverified 1\n", + "Under investigation 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 199, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# STATUS BEFORE CLEANING\n", + "\n", + "shark_attack_df[\"Type\"].value_counts(dropna=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": { + "id": "f16kMRImknNt" + }, + "outputs": [], + "source": [ + "# Remove extra spaces\n", + "\n", + "shark_attack_df[\"Type\"] = shark_attack_df[\"Type\"].str.strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": { + "id": "8QSNaFBnkrbR" + }, + "outputs": [], + "source": [ + "# Standardize capitalization\n", + "\n", + "shark_attack_df[\"Type\"] = shark_attack_df[\"Type\"].replace({\n", + " \"unprovoked\": \"Unprovoked\",\n", + " \"UNprovoked\": \"Unprovoked\",\n", + " \"Provoked \": \"Provoked\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": { + "id": "oCfkWc-TkvQe" + }, + "outputs": [], + "source": [ + "# Handling missing values\n", + "\n", + "shark_attack_df[\"Type\"] = shark_attack_df[\"Type\"].replace({\n", + " \"?\": \"Unknown\",\n", + " \"Unconfirmed\": \"Unknown\",\n", + " \"Unverified\": \"Unknown\",\n", + " \"Under investigation\": \"Unknown\"\n", + "})\n", + "\n", + "shark_attack_df[\"Type\"] = shark_attack_df[\"Type\"].fillna(\"Unknown\")" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": { + "id": "Dguc82oak0yj" + }, + "outputs": [], + "source": [ + "# Combine \"boat\" with \"watercraft\"\n", + "\n", + "shark_attack_df[\"Type\"] = shark_attack_df[\"Type\"].replace({\n", + " \"Boat\": \"Watercraft\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 335 + }, + "executionInfo": { + "elapsed": 122, + "status": "ok", + "timestamp": 1780854314309, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "mDCYTeAAk4Np", + "outputId": "f2bd6e14-7864-4a87-ba94-ee0e8b76ef6f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Type\n", + "Unprovoked 3634\n", + "Provoked 427\n", + "Invalid 337\n", + "Watercraft 216\n", + "Sea Disaster 73\n", + "Questionable 27\n", + "Unknown 18\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 204, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Type\"].value_counts(dropna=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gvpL0_-bmbvO" + }, + "source": [ + "**ACTIVITY COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 34, + "status": "ok", + "timestamp": 1780854314347, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "JqH8GSvak9hj", + "outputId": "ba70cdc2-3b61-4147-d695-d9549e4aa8ba" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Activity\n", + "Surfing 1135\n", + "Swimming 638\n", + "Spearfishing 338\n", + "NaN 293\n", + "Fishing 278\n", + "Wading 148\n", + "Snorkeling 133\n", + "Diving 99\n", + "Standing 82\n", + "Scuba diving 78\n", + "Body boarding 62\n", + "Boogie boarding 42\n", + "Kayaking 40\n", + "Body surfing 33\n", + "Free diving 23\n", + "Windsurfing 20\n", + "Boogie Boarding 18\n", + "Swimming 17\n", + "Scuba Diving 13\n", + "Bathing 13\n", + "Playing 13\n", + "Walking 13\n", + "Surf skiing 12\n", + "Treading water 12\n", + "Surf-skiing 12\n", + "Shark fishing 12\n", + "Paddle boarding 11\n", + "Surf fishing 11\n", + "Fishing 11\n", + "Freediving 10\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 205, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# STATUS BEFORE THE CLEANING\n", + "\n", + "shark_attack_df[\"Activity\"].value_counts(dropna=False).head(30)" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 42, + "status": "ok", + "timestamp": 1780854314396, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "XXk4rkB_lHo8", + "outputId": "9ee72b63-6245-4491-b69b-a572390b2864" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "863" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Unique activities\n", + "\n", + "shark_attack_df[\"Activity\"].nunique()" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": { + "id": "BifeiD2cmnfv" + }, + "outputs": [], + "source": [ + "# Remove extra spaces\n", + "\n", + "shark_attack_df[\"Activity\"] = (\n", + " shark_attack_df[\"Activity\"]\n", + " .str.strip()\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": { + "id": "FANpC401mqHE" + }, + "outputs": [], + "source": [ + "# Convert to lowercase\n", + "\n", + "shark_attack_df[\"Activity\"] = (\n", + " shark_attack_df[\"Activity\"]\n", + " .str.lower()\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 25, + "status": "ok", + "timestamp": 1780854314502, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "i-5wKs0lmueU", + "outputId": "2aabd831-2afe-47cc-8872-a5a7b0a67a90" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(293)" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Handling the missing values\n", + "\n", + "shark_attack_df[\"Activity\"].isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": { + "id": "Vl3yQ2iXmyi-" + }, + "outputs": [], + "source": [ + "# Handling the missing values\n", + "\n", + "shark_attack_df[\"Activity\"] = (\n", + " shark_attack_df[\"Activity\"]\n", + " .fillna(\"unknown\")\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 51, + "status": "ok", + "timestamp": 1780854314562, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "GcvarLJZm2N6", + "outputId": "5952b130-18c4-4c6f-dfaf-eb81e29020ab" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Activity\n", + "surfing 1140\n", + "swimming 655\n", + "spearfishing 340\n", + "unknown 296\n", + "fishing 289\n", + "wading 148\n", + "snorkeling 134\n", + "diving 101\n", + "scuba diving 100\n", + "standing 83\n", + "body boarding 69\n", + "boogie boarding 60\n", + "kayaking 43\n", + "body surfing 38\n", + "free diving 25\n", + "windsurfing 20\n", + "surf skiing 18\n", + "kayak fishing 15\n", + "playing 14\n", + "bathing 13\n", + "walking 13\n", + "shark fishing 13\n", + "paddle boarding 12\n", + "kite surfing 12\n", + "treading water 12\n", + "floating 12\n", + "surf-skiing 12\n", + "surf fishing 11\n", + "sea disaster 11\n", + "freediving 10\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# STATUS AFTER CLEANING\n", + "\n", + "shark_attack_df[\"Activity\"].value_counts().head(30)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ADu2n5p-m_hX" + }, + "source": [ + "**CREATING AN ACTIVITY GROUP COLUMN FOR FURTHER CLEANING OF THE ACTIVITY**" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": { + "id": "Nn6l3l_oZUd3" + }, + "outputs": [], + "source": [ + "def activity_group(activity):\n", + "\n", + " if activity == \"unknown\":\n", + " return \"Unknown\"\n", + "\n", + " elif \"surf\" in activity:\n", + " return \"Surfing\"\n", + "\n", + " elif \"body boarding\" in activity:\n", + " return \"Surfing\"\n", + "\n", + " elif \"boogie boarding\" in activity:\n", + " return \"Surfing\"\n", + "\n", + " elif \"swim\" in activity:\n", + " return \"Swimming\"\n", + "\n", + " elif \"bathing\" in activity:\n", + " return \"Swimming\"\n", + "\n", + " elif \"treading water\" in activity:\n", + " return \"Swimming\"\n", + "\n", + " elif \"fish\" in activity:\n", + " return \"Fishing\"\n", + "\n", + " elif \"dive\" in activity:\n", + " return \"Diving\"\n", + "\n", + " elif \"snork\" in activity:\n", + " return \"Diving\"\n", + "\n", + " elif \"kayak\" in activity:\n", + " return \"Boating/Paddling\"\n", + "\n", + " elif \"canoe\" in activity:\n", + " return \"Boating/Paddling\"\n", + "\n", + " elif \"rowing\" in activity:\n", + " return \"Boating/Paddling\"\n", + "\n", + " elif \"fell overboard\" in activity:\n", + " return \"Boating/Paddling\"\n", + "\n", + " elif \"wading\" in activity:\n", + " return \"Shore Activities\"\n", + "\n", + " elif \"standing\" in activity:\n", + " return \"Shore Activities\"\n", + "\n", + " elif \"walking\" in activity:\n", + " return \"Shore Activities\"\n", + "\n", + " else:\n", + " return \"Other\"" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": { + "id": "DgDlT9ObnFjD" + }, + "outputs": [], + "source": [ + "shark_attack_df[\"Activity_Group\"] = (\n", + " shark_attack_df[\"Activity\"]\n", + " .apply(activity_group)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 366 + }, + "executionInfo": { + "elapsed": 15, + "status": "ok", + "timestamp": 1780854314669, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "d1iKxTG7nIwA", + "outputId": "f3b4e725-1452-462c-884d-11d099e3d776" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Activity_Group\n", + "Surfing 1522\n", + "Fishing 886\n", + "Other 779\n", + "Swimming 774\n", + "Unknown 296\n", + "Shore Activities 264\n", + "Diving 141\n", + "Boating/Paddling 70\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 214, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Activity_Group\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 149, + "status": "ok", + "timestamp": 1780854314822, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "5X5d8jTinLcy", + "outputId": "95ec8f11-6cfd-481e-df63-a5330c0b6d17" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(296, 12)" + ] + }, + "execution_count": 215, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Checking activity information in the \"Injury\" to decrease number of Unknown data points\n", + "\n", + "unknown_activity_df = shark_attack_df[\n", + " shark_attack_df[\"Activity\"] == \"unknown\"\n", + "]\n", + "\n", + "unknown_activity_df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 25, + "status": "ok", + "timestamp": 1780854314845, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "VjX0E1y7nQ5t", + "outputId": "8f29ac90-ae60-4207-cd94-e80f66a545a9" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1977 Minor injuries\n", + "2830 Right calf bitten\n", + "3150 Puncture wounds on right foot\n", + "4015 Survived\n", + "4135 FATAL, body not recovered\n", + "2328 A hoax - No shark was involved and Wells' \"dau...\n", + "4305 Leg bitten\n", + "3331 Survived. questionable incident\n", + "1490 Laceration to toe\n", + "4136 FATAL, body not recovered\n", + "1616 Lacerations to right wrist and middle finger\n", + "4104 Left leg bitten\n", + "3087 No details\n", + "3666 Human remains recovered, evidence of scavengin...\n", + "1386 Arm bitten by captive shark PROVOKED INCIDENT\n", + "291 minor injuries\n", + "1640 Abrasions to left hand\n", + "4581 No injury\n", + "3865 FATAL\n", + "3332 FATAL\n", + "1059 Superficial injury to foot\n", + "3510 No injury to occupants, pontoon puctured\n", + "1055 Minor injury to chest PROVOKED INCIDENT\n", + "324 Laceration to lower leg\n", + "2365 Bites by 2.5 m tiger shark were post mortem\n", + "3957 Shark leapt into boat, hitting Fanie Schoeman ...\n", + "3481 Survived\n", + "4120 PROVOKED INCIDENT\n", + "3523 Remains recovered from 4 m, 420-kg, caught 13-...\n", + "2690 2 bites behind knee\n", + "Name: Injury, dtype: str" + ] + }, + "execution_count": 216, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "unknown_activity_df[\"Injury\"].sample(30)" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 158, + "status": "ok", + "timestamp": 1780854315007, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "HloFfC05nUtK", + "outputId": "d3df509a-d044-4af3-ce22-075de609aed1" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 217, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Checking activity information in the \"Injury\" column using regex\n", + "\n", + "pattern = r\"\\b(?:surf|surfing|body surfing|windsurfing)\\b\"\n", + "\n", + "unknown_activity_df[\"Injury\"].str.contains(\n", + " pattern,\n", + " case=False,\n", + " regex=True,\n", + " na=False\n", + ").sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 92, + "status": "ok", + "timestamp": 1780854315010, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "CMFrFipVnZEI", + "outputId": "5a909c5c-9454-4d3f-ce26-e9277332ab25" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(1)" + ] + }, + "execution_count": 218, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern = r\"\\b(?:swim|swimming|bathing|treading water)\\b\"\n", + "\n", + "unknown_activity_df[\"Injury\"].str.contains(\n", + " pattern,\n", + " case=False,\n", + " regex=True,\n", + " na=False\n", + ").sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 38, + "status": "ok", + "timestamp": 1780854315040, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "Lc3CjLunndeC", + "outputId": "d2758292-1ba1-4b4c-f3c5-ddd4048f978d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 219, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern = r\"\\b(?:fish|fishing|spearfishing)\\b\"\n", + "\n", + "unknown_activity_df[\"Injury\"].str.contains(\n", + " pattern,\n", + " case=False,\n", + " regex=True,\n", + " na=False\n", + ").sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "executionInfo": { + "elapsed": 91, + "status": "ok", + "timestamp": 1780854315135, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "sE8XS9iAngOP", + "outputId": "d0744f82-b137-4af7-cb28-6d97e83509f9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Injury
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Injury]\n", + "Index: []" + ] + }, + "execution_count": 220, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern = r\"\\b(?:surf|surfing|body surfing|windsurfing)\\b\"\n", + "\n", + "unknown_activity_df[\n", + " unknown_activity_df[\"Injury\"].str.contains(\n", + " pattern,\n", + " case=False,\n", + " regex=True,\n", + " na=False\n", + " )\n", + "][[\"Injury\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "executionInfo": { + "elapsed": 84, + "status": "ok", + "timestamp": 1780854315226, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "nPJaT-BKnmp6", + "outputId": "1f71f5e7-7476-4080-e200-d0402fffbb08" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ActivityInjury
4418unknownFATAL. Said to have been killed by sorcerers t...
486unknownMinor lacerations to right foot when he steppe...
1418unknownProbable drowning with post-mortem bites
2387unknownNo injury
322unknownCut to knee
1386unknownArm bitten by captive shark PROVOKED INCIDENT
528unknownNaN
3857unknownFATAL
3127unknownHand bitten (minor injury)
4144unknownSurvived
2767unknownNon-fatal
3274unknownFATAL
4788unknownLower left leg bitten, surgically amputated
3666unknownHuman remains recovered, evidence of scavengin...
4085unknownPROVOKED INCIDENT
3915unknownMissing, believed taken by a shark
4272unknownBones and brightly colored bangles recovered  ...
532unknownNaN
2875unknownFive cuts on his heel
4084unknownHand bitten
4209unknownFoot lacerated. Recorded as PROVOKED INCIDENT
4098unknownFATAL
3089unknownMinor injury
4316unknownNo details
4305unknownLeg bitten
2352unknownShark-bitten surfboard found adrift
1003unknownMinor injury to toes
3087unknownNo details
4631unknownFATAL
3523unknownRemains recovered from 4 m, 420-kg, caught 13-...
3669unknownRemains recovered 1-4-1984 showed evidence of ...
2975unknown5 m white shark obsrved feeding on remains 6 d...
4225unknownCalf injured Recorded as PROVOKED INCIDENT
3579unknownBack of left thigh bitten
4327unknownNo injury to occupant. Shark struck vessel, ja...
324unknownLaceration to lower leg
1977unknownMinor injuries
3889unknownNo injury, white shark struck platform
1996unknownLacerations to right foot
4722unknownLeft wrist bitten by netted shark placed in bo...
4763unknownNo injury, harpooned shark bit hull, leaving t...
4399unknownThighs abraded, puncture wounds in dorsal surf...
3596unknownSurvived
4641unknownBodies of  hurricane victims bitten by shoals ...
3924unknownFace & thorax bitten
564unknownRight leg bitten
2442unknownRight foot bitten
3709unknownSurvived
4696unknownConsidered a doubtful incident
4734unknownNo injury to occupants, toothmarks on bottom &...
\n", + "
" + ], + "text/plain": [ + " Activity Injury\n", + "4418 unknown FATAL. Said to have been killed by sorcerers t...\n", + "486 unknown Minor lacerations to right foot when he steppe...\n", + "1418 unknown Probable drowning with post-mortem bites\n", + "2387 unknown No injury\n", + "322 unknown Cut to knee\n", + "1386 unknown Arm bitten by captive shark PROVOKED INCIDENT\n", + "528 unknown NaN\n", + "3857 unknown FATAL\n", + "3127 unknown Hand bitten (minor injury)\n", + "4144 unknown Survived\n", + "2767 unknown Non-fatal\n", + "3274 unknown FATAL\n", + "4788 unknown Lower left leg bitten, surgically amputated\n", + "3666 unknown Human remains recovered, evidence of scavengin...\n", + "4085 unknown PROVOKED INCIDENT\n", + "3915 unknown Missing, believed taken by a shark\n", + "4272 unknown Bones and brightly colored bangles recovered ...\n", + "532 unknown NaN\n", + "2875 unknown Five cuts on his heel\n", + "4084 unknown Hand bitten\n", + "4209 unknown Foot lacerated. Recorded as PROVOKED INCIDENT\n", + "4098 unknown FATAL\n", + "3089 unknown Minor injury\n", + "4316 unknown No details\n", + "4305 unknown Leg bitten\n", + "2352 unknown Shark-bitten surfboard found adrift\n", + "1003 unknown Minor injury to toes\n", + "3087 unknown No details\n", + "4631 unknown FATAL\n", + "3523 unknown Remains recovered from 4 m, 420-kg, caught 13-...\n", + "3669 unknown Remains recovered 1-4-1984 showed evidence of ...\n", + "2975 unknown 5 m white shark obsrved feeding on remains 6 d...\n", + "4225 unknown Calf injured Recorded as PROVOKED INCIDENT\n", + "3579 unknown Back of left thigh bitten\n", + "4327 unknown No injury to occupant. Shark struck vessel, ja...\n", + "324 unknown Laceration to lower leg\n", + "1977 unknown Minor injuries\n", + "3889 unknown No injury, white shark struck platform\n", + "1996 unknown Lacerations to right foot\n", + "4722 unknown Left wrist bitten by netted shark placed in bo...\n", + "4763 unknown No injury, harpooned shark bit hull, leaving t...\n", + "4399 unknown Thighs abraded, puncture wounds in dorsal surf...\n", + "3596 unknown Survived\n", + "4641 unknown Bodies of hurricane victims bitten by shoals ...\n", + "3924 unknown Face & thorax bitten\n", + "564 unknown Right leg bitten\n", + "2442 unknown Right foot bitten\n", + "3709 unknown Survived\n", + "4696 unknown Considered a doubtful incident\n", + "4734 unknown No injury to occupants, toothmarks on bottom &..." + ] + }, + "execution_count": 221, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "unknown_activity_df[\n", + " [\"Activity\", \"Injury\"]\n", + "].sample(50)" + ] + }, + { + "cell_type": "code", + "execution_count": 222, + "metadata": { + "id": "hS1iZZLMnsFV" + }, + "outputs": [], + "source": [ + "# We checked whether the Injury column could help recover missing Activity values.\n", + "# Only a very small number (3) of unknown activities had useful activity clues.\n", + "# Because the impact is not material, we keep these records as \"Unknown\"." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sUDxsYjivC9c" + }, + "source": [ + "**FATAL Y/N COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 223, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 117, + "status": "ok", + "timestamp": 1780854315442, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "UVj-Jv-svRAJ", + "outputId": "5f04d220-6d25-4051-cc14-5fe45b952b96" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Y', 'N', 'F', 'M', nan, 'n', 'Nq', 'UNKNOWN', 2017, ' N'],\n", + " dtype=object)" + ] + }, + "execution_count": 223, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Cleaning the Fatal Y/N column\n", + "#Checking the unique values on the column\n", + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 224, + "metadata": { + "id": "fit2tNQavYSA" + }, + "outputs": [], + "source": [ + "#Standardizing font size\n", + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].str.lower()" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 104, + "status": "ok", + "timestamp": 1780854315464, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "v6kcw0bDxMMZ", + "outputId": "bd9797dd-5d61-4899-bf76-8ca6b56bef8a" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n', 'f', 'm', nan, 'nq', 'unknown'], dtype=object)" + ] + }, + "execution_count": 225, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#The value \"n\" is duplicated because there are spaces. Let's remove it.\n", + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].str.strip()\n", + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 226, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 241 + }, + "executionInfo": { + "elapsed": 39, + "status": "ok", + "timestamp": 1780854315482, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "MYmOg_ZKxZwH", + "outputId": "7f950503-d4e3-4b82-c4d0-b5f429b8a4b8" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_YearActivity_Group
1222024-01-012024Unprovokedunited statessurfingMNot specific shark bite injuries to the bodyfNot stated2024-06-232024Surfing
2452023-02-192023Unprovokednew caledoniaswimmingMFATAL, Multiple injuriesfBull shark2023-02-192023Swimming
5732019-12-122019QuestionablefrancekayakingMPartial remains recovered 12/26/2019 from sharkf3.4 m tiger shark2019-12-122019Boating/Paddling
5792019-11-232019QuestionableaustraliaspearfishingMBelieved to have drowned. Partial remains wash...fNaN2019-11-232019Fishing
9552016-11-172016Unprovokedmozambiquebody recoveryMBody washed up on beach with signs of shark at...fUnknown2016-11-172016Other
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "122 2024-01-01 2024 Unprovoked united states surfing M \n", + "245 2023-02-19 2023 Unprovoked new caledonia swimming M \n", + "573 2019-12-12 2019 Questionable france kayaking M \n", + "579 2019-11-23 2019 Questionable australia spearfishing M \n", + "955 2016-11-17 2016 Unprovoked mozambique body recovery M \n", + "\n", + " Injury Fatal Y/N \\\n", + "122 Not specific shark bite injuries to the body f \n", + "245 FATAL, Multiple injuries f \n", + "573 Partial remains recovered 12/26/2019 from shark f \n", + "579 Believed to have drowned. Partial remains wash... f \n", + "955 Body washed up on beach with signs of shark at... f \n", + "\n", + " Species Date_parsed Date_Year Activity_Group \n", + "122 Not stated 2024-06-23 2024 Surfing \n", + "245 Bull shark 2023-02-19 2023 Swimming \n", + "573 3.4 m tiger shark 2019-12-12 2019 Boating/Paddling \n", + "579 NaN 2019-11-23 2019 Fishing \n", + "955 Unknown 2016-11-17 2016 Other " + ] + }, + "execution_count": 226, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#investigating the number of cases where the values ​​are not \"y\" and \"n\"\n", + "shark_attack_df.loc[shark_attack_df[\"Fatal Y/N\"] == \"f\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": { + "id": "giG-CKR7xeAH" + }, + "outputs": [], + "source": [ + "#As indicated on the incident reporting website, all individuals survived unless noted otherwise.\n", + "#Since we don't have the information in the \"Fatal Y/N\" column, we'll check the information in the \"Injury\" column." + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "metadata": { + "id": "CwJMS0exxyxT" + }, + "outputs": [], + "source": [ + "#Analized manually, info of fatal attack in column \"injury\" of the value \"f\". By the info in Injury it means fatal.\n", + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].replace({\n", + " \"f\": \"n\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Date', 'Year', 'Type', 'Country', 'Activity', 'Sex', 'Injury',\n", + " 'Fatal Y/N', 'Species ', 'Date_parsed', 'Date_Year', 'Activity_Group'],\n", + " dtype='str')" + ] + }, + "execution_count": 229, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 230, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 910, + "status": "ok", + "timestamp": 1780854316542, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "JId9UU9byJn5", + "outputId": "24ac1f79-2e47-4a29-b8f5-5632be2bcbe8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n', 'm', nan, 'nq', 'unknown'], dtype=object)" + ] + }, + "execution_count": 230, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 84 + }, + "executionInfo": { + "elapsed": 46, + "status": "ok", + "timestamp": 1780854316561, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "duVtY02SyOCL", + "outputId": "b67e7610-5103-402a-a3d2-a054d0209d88" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Series([], Name: Fatal Y/N, dtype: object)" + ] + }, + "execution_count": 231, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].loc[shark_attack_df[\"Fatal Y/N\"] == \"f\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 232, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 178 + }, + "executionInfo": { + "elapsed": 10, + "status": "ok", + "timestamp": 1780854316576, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "yXnYCQgtyU8F", + "outputId": "9a7f7226-9c18-4931-e7ee-782362490173" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_YearActivity_Group
1792023-09-092023UnprovokedphilippinesfishingMLaceration to left thighmNaNNaT2023Fishing
3292022-04-012022Unknownsouth africaunknownMPossible drowing and scavengingmNaN2022-04-012022Unknown
10442016-04-182016Provokedfrench polynesiaspearfishingMLaceration to knee by speared shark PROVOKED I...mGrey reef shark, 2 m2016-04-182016Fishing
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "179 2023-09-09 2023 Unprovoked philippines fishing M \n", + "329 2022-04-01 2022 Unknown south africa unknown M \n", + "1044 2016-04-18 2016 Provoked french polynesia spearfishing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "179 Laceration to left thigh m \n", + "329 Possible drowing and scavenging m \n", + "1044 Laceration to knee by speared shark PROVOKED I... m \n", + "\n", + " Species Date_parsed Date_Year Activity_Group \n", + "179 NaN NaT 2023 Fishing \n", + "329 NaN 2022-04-01 2022 Unknown \n", + "1044 Grey reef shark, 2 m 2016-04-18 2016 Fishing " + ] + }, + "execution_count": 232, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.loc[shark_attack_df[\"Fatal Y/N\"] == \"m\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 233, + "metadata": { + "id": "6Gx939X43g_N" + }, + "outputs": [], + "source": [ + "#Analized manually, info of fatal attack in column \"injury\" of the value \"m\". By the info in Injury it does not means fatal by shark.\n", + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].replace({\n", + " \"m\": \"n\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 34, + "status": "ok", + "timestamp": 1780854316738, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "qDD1wi693r7t", + "outputId": "9b2399f7-8ce6-419f-e888-a2177481c391" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n', nan, 'nq', 'unknown'], dtype=object)" + ] + }, + "execution_count": 234, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 115 + }, + "executionInfo": { + "elapsed": 14, + "status": "ok", + "timestamp": 1780854316742, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "0U0xkmxi3x2L", + "outputId": "019d2321-c198-4e9f-fe1a-c3d41e0f7edc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_YearActivity_Group
4062021-06-282021Unprovokedunited statessurfingFLacerations to thigh and calfnqNaN2021-06-282021Surfing
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "406 2021-06-28 2021 Unprovoked united states surfing F \n", + "\n", + " Injury Fatal Y/N Species Date_parsed Date_Year \\\n", + "406 Lacerations to thigh and calf nq NaN 2021-06-28 2021 \n", + "\n", + " Activity_Group \n", + "406 Surfing " + ] + }, + "execution_count": 235, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Continuing to explore the values\n", + "shark_attack_df.loc[shark_attack_df[\"Fatal Y/N\"] == \"nq\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Zw17IXXV3857" + }, + "outputs": [], + "source": [ + "#Analized manually, info of fatal attack in column \"injury\" of the value \"nq\". By the info in Injury it means not fatal.\n", + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].replace({\n", + " \"nq\": \"n\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 237, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 37, + "status": "ok", + "timestamp": 1780854316938, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "bWb3qgjC4NDW", + "outputId": "3a4228b3-be82-428a-88a7-b4e5e485f7b1" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n', nan, 'unknown'], dtype=object)" + ] + }, + "execution_count": 237, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 238, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 964 + }, + "executionInfo": { + "elapsed": 117, + "status": "ok", + "timestamp": 1780854317059, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "Cjlet30a4R_Y", + "outputId": "ee33931a-a741-4af0-9ee5-053478163835" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NSpeciesDate_parsedDate_YearActivity_Group
1832023-08-252023UnprovokedaustraliasurfingMSevere injuries to lower limbsNaNWhite shark, 3.8-4.2m2023-08-252023Surfing
1862023-08-212023QuestionablebahamasunknownMBody found with shark bites. Possible drowning...NaNNaN2023-08-212023Unknown
2112023-06-072023Unprovokedbahamasscuba divingFCalf severely bittenNaNCaribbean rreef shark2023-06-072023Other
2432023-03-022023UnprovokedseychellessnorkelingMLeft foot bittenNaNLemon shark2023-03-022023Diving
2472023-02-182023QuestionableargentinaunknownMDeath by misadventureNaNNaN2023-02-182023Unknown
.......................................
47441960-08-141960Invalidmozambiqueboat with 46 people on board capsizedUnknown1  survivorNaNShark involvement not confirmed1960-08-141960Other
47571960-06-071960Invalidunited statestesting classified underwater electronic gear ...MLegs & arms bitten, coroner unable to determin...NaNShark involvement prior to death was not confi...1960-06-071960Other
47691960-04-141960Invalidbermudafloating on a raftMNo injury, 5 sharks bumped raftNaNQuestionable incident1960-04-141960Other
47821960-02-271960Invalidunited statesspearfishingMLeft forearm laceratedNaNAccording to Benjamin, the injury was inflicte...1960-02-271960Fishing
47871960-02-031960Invalidunited statess2f-1 airplane crashed immediately after carri...UnknownOf crew of 4, only 1 person survived (broken l...NaNShark involvement prior to deaths was not conf...1960-02-031960Other
\n", + "

340 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " Date Year Type Country \\\n", + "183 2023-08-25 2023 Unprovoked australia \n", + "186 2023-08-21 2023 Questionable bahamas \n", + "211 2023-06-07 2023 Unprovoked bahamas \n", + "243 2023-03-02 2023 Unprovoked seychelles \n", + "247 2023-02-18 2023 Questionable argentina \n", + "... ... ... ... ... \n", + "4744 1960-08-14 1960 Invalid mozambique \n", + "4757 1960-06-07 1960 Invalid united states \n", + "4769 1960-04-14 1960 Invalid bermuda \n", + "4782 1960-02-27 1960 Invalid united states \n", + "4787 1960-02-03 1960 Invalid united states \n", + "\n", + " Activity Sex \\\n", + "183 surfing M \n", + "186 unknown M \n", + "211 scuba diving F \n", + "243 snorkeling M \n", + "247 unknown M \n", + "... ... ... \n", + "4744 boat with 46 people on board capsized Unknown \n", + "4757 testing classified underwater electronic gear ... M \n", + "4769 floating on a raft M \n", + "4782 spearfishing M \n", + "4787 s2f-1 airplane crashed immediately after carri... Unknown \n", + "\n", + " Injury Fatal Y/N \\\n", + "183 Severe injuries to lower limbs NaN \n", + "186 Body found with shark bites. Possible drowning... NaN \n", + "211 Calf severely bitten NaN \n", + "243 Left foot bitten NaN \n", + "247 Death by misadventure NaN \n", + "... ... ... \n", + "4744 1 survivor NaN \n", + "4757 Legs & arms bitten, coroner unable to determin... NaN \n", + "4769 No injury, 5 sharks bumped raft NaN \n", + "4782 Left forearm lacerated NaN \n", + "4787 Of crew of 4, only 1 person survived (broken l... NaN \n", + "\n", + " Species Date_parsed \\\n", + "183 White shark, 3.8-4.2m 2023-08-25 \n", + "186 NaN 2023-08-21 \n", + "211 Caribbean rreef shark 2023-06-07 \n", + "243 Lemon shark 2023-03-02 \n", + "247 NaN 2023-02-18 \n", + "... ... ... \n", + "4744 Shark involvement not confirmed 1960-08-14 \n", + "4757 Shark involvement prior to death was not confi... 1960-06-07 \n", + "4769 Questionable incident 1960-04-14 \n", + "4782 According to Benjamin, the injury was inflicte... 1960-02-27 \n", + "4787 Shark involvement prior to deaths was not conf... 1960-02-03 \n", + "\n", + " Date_Year Activity_Group \n", + "183 2023 Surfing \n", + "186 2023 Unknown \n", + "211 2023 Other \n", + "243 2023 Diving \n", + "247 2023 Unknown \n", + "... ... ... \n", + "4744 1960 Other \n", + "4757 1960 Other \n", + "4769 1960 Other \n", + "4782 1960 Fishing \n", + "4787 1960 Other \n", + "\n", + "[340 rows x 12 columns]" + ] + }, + "execution_count": 238, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[shark_attack_df[\"Fatal Y/N\"].isna()]" + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 513 + }, + "executionInfo": { + "elapsed": 127, + "status": "ok", + "timestamp": 1780854317197, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "GB-gtFe74ZhO", + "outputId": "1ad6f397-bb6c-4696-b6f3-13437534428d" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_10728/474157297.py:4: UserWarning: This pattern is interpreted as a regular expression, and has match groups. To actually get the groups, use str.extract.\n", + " shark_attack_df[\"Contains_Fatal\"] = shark_attack_df[\"Injury\"].str.contains(pattern, case=False, regex=True)\n" + ] + }, + { + "data": { + "text/plain": [ + "0 False\n", + "1 False\n", + "2 False\n", + "3 False\n", + "4 False\n", + " ... \n", + "4799 False\n", + "4801 True\n", + "4802 False\n", + "4803 True\n", + "4804 False\n", + "Name: Contains_Fatal, Length: 4732, dtype: bool" + ] + }, + "execution_count": 239, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Checking fatality information in the \"Injury\" column using regex\n", + "pattern = r\"\\b(fatal\\w*|lethal\\w*|deadly\\w*|mortal\\w*|terminal\\w*)\\b\"\n", + "\n", + "shark_attack_df[\"Contains_Fatal\"] = shark_attack_df[\"Injury\"].str.contains(pattern, case=False, regex=True)\n", + "\n", + "shark_attack_df[\"Contains_Fatal\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 240, + "metadata": { + "id": "J1DLy0GO4j27" + }, + "outputs": [], + "source": [ + "shark_attack_df[\"Fatal Y/N\"] = shark_attack_df[\"Fatal Y/N\"].fillna(\n", + " shark_attack_df[\"Contains_Fatal\"].apply(lambda x: \"y\" if x else \"n\")\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 241, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 35, + "status": "ok", + "timestamp": 1780854317443, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "sev3jtor4py6", + "outputId": "3482df14-f78e-4315-d8d9-751b511db314" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n', 'unknown'], dtype=object)" + ] + }, + "execution_count": 241, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "metadata": { + "id": "SIdF0Mqo4uYc" + }, + "outputs": [], + "source": [ + "shark_attack_df.loc[shark_attack_df[\"Fatal Y/N\"].isin([\"unknown\"]), \"Fatal Y/N\"] = \\\n", + " shark_attack_df[\"Contains_Fatal\"].apply(lambda x: \"y\" if x else \"n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 237, + "status": "ok", + "timestamp": 1780854317692, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "_0zWhaQZ40OY", + "outputId": "80c4c660-c3d0-46b6-9f04-1c9410e7e525" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['y', 'n'], dtype=object)" + ] + }, + "execution_count": 243, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 178 + }, + "executionInfo": { + "elapsed": 146, + "status": "ok", + "timestamp": 1780854317695, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "01M4Z2Wi44Ih", + "outputId": "ad7d0d0e-dcb5-4812-d2c4-07ddaa1cc11b" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Fatal Y/N\n", + "n 4124\n", + "y 608\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 244, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"Fatal Y/N\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HphQDKT95ZXE" + }, + "source": [ + "**SPECIES COLUMN CLEANING**" + ] + }, + { + "cell_type": "code", + "execution_count": 245, + "metadata": { + "id": "PKudnHMp4798" + }, + "outputs": [], + "source": [ + "#The column title has a space at the end. Let's correct it.\n", + "shark_attack_df.rename(columns={\"Species \" : \"specie\"}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 207, + "status": "ok", + "timestamp": 1780854318077, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "vQcBv5U45wqL", + "outputId": "885c1a3d-8fc0-44b0-e904-b714e3eee138" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Date', 'Year', 'Type', 'Country', 'Activity', 'Sex', 'Injury',\n", + " 'Fatal Y/N', 'specie', 'Date_parsed', 'Date_Year', 'Activity_Group',\n", + " 'Contains_Fatal'],\n", + " dtype='str')" + ] + }, + "execution_count": 246, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 247, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 407, + "status": "ok", + "timestamp": 1780854318510, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "wQ0XDIhC50_-", + "outputId": "1533af1e-f6ec-45fd-e712-6cad0e5c1268" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "[ 'Undetermined Bull shark most likely',\n", + " 'Blue fish bite most probable',\n", + " 'Great White Shark',\n", + " 'Unknown',\n", + " 'Bronze Whaler',\n", + " 'Great White Shark 3.5m (11.5ft)',\n", + " 'Unknown shark 5ft (1.5m)',\n", + " 'Great White Shark 10ft (3m)',\n", + " 'Tiger or bull shark implicated',\n", + " 'Juvenile Tiger shark 7ft (2.1m)',\n", + " ...\n", + " 'Bronze whaler shark,4 m [13'] ',\n", + " 'According to Benjamin, the injury was inflicted by a barracuda, not a shark',\n", + " 'Tiger shark, 3.4 m [11'] captured',\n", + " 'Grey nurse shark, 2.9 m [9'6\"] ',\n", + " 'Shark involvement prior to deaths was not confirmed',\n", + " '3.5 m [11'6\"] shark captured',\n", + " 'Blue pointer',\n", + " '4.9 m [16'] shark',\n", + " '3.7 m to 4.6 m [12' to 15'] shark',\n", + " 'Blacktail reef shark']\n", + "Length: 1414, dtype: str" + ] + }, + "execution_count": 247, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"specie\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "metadata": { + "id": "GLg733m4553B" + }, + "outputs": [], + "source": [ + "#Creating a function to search for patterns that include \"shark\" and extracting it\n", + "def extract_shark_name(text):\n", + " # Convert the input to string, handle NaN as empty string\n", + " text = str(text) if not pd.isna(text) else \"\"\n", + "\n", + " # Define regex pattern to match shark names\n", + " match = re.search(r'(\\b\\w*\\s*\\w*shark\\b)', text, re.I)\n", + " return match.group(0) if match else np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 249, + "metadata": { + "id": "hAPK-YkJ6QQb" + }, + "outputs": [], + "source": [ + "shark_attack_df[\"shark_name\"] = shark_attack_df[\"specie\"].apply(extract_shark_name)" + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "metadata": { + "id": "5djiTqFZ6UJ4" + }, + "outputs": [], + "source": [ + "shark_attack_df[\"shark_name\"] = shark_attack_df[\"shark_name\"].str.lower()" + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "executionInfo": { + "elapsed": 143, + "status": "ok", + "timestamp": 1780854318955, + "user": { + "displayName": "Ana Rita Preto", + "userId": "09377013620652850553" + }, + "user_tz": -60 + }, + "id": "RmkfF0y96ZVI", + "outputId": "ebed92f0-31af-42e5-c9d7-4feace24c57d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "[ 'bull shark', nan, 'white shark',\n", + " 'unknown shark', 'tiger shark', 'gill shark',\n", + " '5m shark', 'reef shark', '3m shark',\n", + " 'nurse shark', '2m shark', 'lemon shark',\n", + " 'shall shark', 'small shark', 'mako shark',\n", + " '1m shark', 'blacktip shark', 'ft shark',\n", + " '6ft shark', 'large shark', 'sandbar shark',\n", + " 'shark', 'raggedtooth shark', 'sevengill shark',\n", + " 'whitetip shark', 'galapagos shark', 'blue shark',\n", + " 'wfite shark', 'wobbegong shark', 'rreef shark',\n", + " 'horn shark', 'whaler shark', '6m shark',\n", + " 'tiger shark', 'sandtiger shark', 'while shark',\n", + " 'epaulette shark', 'spinner shark', 'no shark',\n", + " 'tope shark', 'juvenile shark', '4m shark',\n", + " 'a shark', 'm shark', 'angel shark',\n", + " 'cookiecutter shark', 'as shark', 'salmon shark',\n", + " 'dogfish shark', 'silky shark', 'hammerhead shark',\n", + " 'foot shark', 'goblin shark', 'metre shark',\n", + " 'cow shark', 'porbeagle shark', 'jackson shark',\n", + " 'zambesi shark', '30kg shark', 'thresher shark',\n", + " 'whale shark', 'kg shark', 'dusky shark',\n", + " 'smoothhound shark', 'basking shark', 'sand shark',\n", + " 'spotted catshark', 'silvertip shark', 'copper shark',\n", + " 'sevengill shark', 'brown shark', 'colored shark',\n", + " 'captive shark', 'bonnethed shark', 'm shark',\n", + " 'finned shark', 'blacktip shark', 'soupfin shark',\n", + " 'young shark', 'leopard shark', 'unidentified shark',\n", + " 'grey shark', 'female shark', 'lb shark',\n", + " 'gaffed shark', 'zambezi shark', 'sandshark',\n", + " 'gray shark', 'carpet shark', 'dog shark',\n", + " 'cm shark', 'red shark', 'two shark',\n", + " 'banjo shark', 'hooked shark', 'larger shark']\n", + "Length: 96, dtype: str" + ] + }, + "execution_count": 251, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_df[\"shark_name\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 252, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(296, 12)" + ] + }, + "execution_count": 252, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "unknown_shark_name_df = shark_attack_df[\n", + " shark_attack_df[\"shark_name\"] == \"unknown\"\n", + "]\n", + "\n", + "unknown_activity_df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 253, + "metadata": {}, + "outputs": [], + "source": [ + "shark_attack_df[\"shark_name\"] = (\n", + " shark_attack_df[\"shark_name\"]\n", + " .fillna(\"unknown\")\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 254, + "metadata": {}, + "outputs": [], + "source": [ + "shark_attack_df.to_excel(\"shark_attack_clean.xlsx\", index=False)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Team_List_Shark_Attack_EDA.ipynb b/Team_List_Shark_Attack_EDA.ipynb new file mode 100644 index 0000000..516e4e3 --- /dev/null +++ b/Team_List_Shark_Attack_EDA.ipynb @@ -0,0 +1,1854 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "fea8ee17", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e6b79af0", + "metadata": {}, + "outputs": [], + "source": [ + "shark_attack_clean_df = pd.read_excel(\"shark_attack_clean.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f8b05e8b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 4732 entries, 0 to 4731\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Date 4732 non-null datetime64[us]\n", + " 1 Year 4732 non-null int64 \n", + " 2 Type 4732 non-null str \n", + " 3 Country 4732 non-null str \n", + " 4 Activity 4732 non-null str \n", + " 5 Sex 4732 non-null str \n", + " 6 Injury 4711 non-null str \n", + " 7 Fatal Y/N 4732 non-null str \n", + " 8 specie 3078 non-null str \n", + " 9 Date_parsed 4437 non-null datetime64[us]\n", + " 10 Date_Year 4732 non-null int64 \n", + " 11 Activity_Group 4732 non-null str \n", + " 12 Contains_Fatal 4732 non-null bool \n", + " 13 shark_name 4732 non-null str \n", + "dtypes: bool(1), datetime64[us](2), int64(2), str(9)\n", + "memory usage: 931.1 KB\n" + ] + } + ], + "source": [ + "shark_attack_clean_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "94cea7da", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "427\n", + "Is 9.02% of all attacks\n" + ] + } + ], + "source": [ + "#calculate the total number of \"Provoked\" shark attacks and determine the percentage of these attacks relative to all types of shark attacks\n", + "total_provoked_attacks = (\n", + " shark_attack_clean_df[\"Type\"] == \"Provoked\"\n", + ").sum()\n", + "\n", + "total_types = shark_attack_clean_df[\"Type\"].count()\n", + "\n", + "percentual_provoked_attacks = (\n", + " total_provoked_attacks / total_types * 100\n", + ")\n", + "\n", + "print(total_provoked_attacks)\n", + "print(f\"Is {percentual_provoked_attacks:.2f}% of all attacks\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "54e2ffad", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Atacked 242\n", + "Is 5.11% of all attacks\n" + ] + } + ], + "source": [ + "#provoked shark attacks specifically related to the \"Fishing\" activity group.\n", + "total_provoked_attacks = (\n", + " (shark_attack_clean_df[\"Type\"] == \"Provoked\")&\n", + " (shark_attack_clean_df[\"Activity_Group\"] == \"Fishing\")\n", + ").sum()\n", + "\n", + "total_types = shark_attack_clean_df[\"Type\"].count()\n", + "\n", + "percentual_provoked_attacks = (\n", + " total_provoked_attacks / total_types * 100\n", + ")\n", + "\n", + "print(f\"Atacked {total_provoked_attacks}\")\n", + "print(f\"Is {percentual_provoked_attacks:.2f}% of all attacks\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "07f4ed44", + "metadata": {}, + "outputs": [], + "source": [ + "#filtering for provoked shark attacks that occur during fishing activities and then grouping the results by year\n", + "def provoked_fishing_by_year(df):\n", + " return (\n", + " df[\n", + " (df[\"Type\"] == \"Provoked\") &\n", + " (df[\"Activity_Group\"] == \"Fishing\")\n", + " ]\n", + " .groupby(\"Year\")\n", + " .size()\n", + " .sort_index()\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "ddf1236e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Year\n", + "1960 12\n", + "1961 15\n", + "1962 9\n", + "1963 9\n", + "1964 1\n", + "1965 3\n", + "1966 7\n", + "1967 5\n", + "1969 3\n", + "1970 2\n", + "1971 1\n", + "1973 1\n", + "1975 2\n", + "1976 4\n", + "1977 1\n", + "1978 1\n", + "1979 3\n", + "1980 3\n", + "1981 1\n", + "1982 1\n", + "1983 2\n", + "1984 3\n", + "1985 5\n", + "1987 2\n", + "1988 1\n", + "1989 5\n", + "1990 2\n", + "1991 3\n", + "1993 1\n", + "1994 1\n", + "1995 1\n", + "1996 1\n", + "1998 2\n", + "1999 1\n", + "2001 3\n", + "2002 4\n", + "2003 2\n", + "2004 1\n", + "2005 5\n", + "2006 4\n", + "2007 5\n", + "2008 5\n", + "2009 10\n", + "2010 6\n", + "2011 6\n", + "2012 5\n", + "2013 5\n", + "2014 9\n", + "2015 5\n", + "2016 8\n", + "2017 4\n", + "2018 6\n", + "2019 7\n", + "2020 3\n", + "2021 6\n", + "2022 9\n", + "2023 6\n", + "2024 2\n", + "2025 2\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "provoked_per_year = provoked_fishing_by_year(shark_attack_clean_df)\n", + "\n", + "print(provoked_per_year)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "68203ede", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YearActivity_GroupCount
01961Fishing15
11960Fishing12
22009Fishing10
31963Fishing9
42022Fishing9
52014Fishing9
61962Fishing9
72016Fishing8
81966Fishing7
92019Fishing7
102010Fishing6
112018Fishing6
122021Fishing6
132023Fishing6
142011Fishing6
\n", + "
" + ], + "text/plain": [ + " Year Activity_Group Count\n", + "0 1961 Fishing 15\n", + "1 1960 Fishing 12\n", + "2 2009 Fishing 10\n", + "3 1963 Fishing 9\n", + "4 2022 Fishing 9\n", + "5 2014 Fishing 9\n", + "6 1962 Fishing 9\n", + "7 2016 Fishing 8\n", + "8 1966 Fishing 7\n", + "9 2019 Fishing 7\n", + "10 2010 Fishing 6\n", + "11 2018 Fishing 6\n", + "12 2021 Fishing 6\n", + "13 2023 Fishing 6\n", + "14 2011 Fishing 6" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_15 = (\n", + " shark_attack_clean_df[\n", + " (shark_attack_clean_df[\"Type\"] == \"Provoked\")&\n", + " (shark_attack_clean_df[\"Activity_Group\"] == \"Fishing\")\n", + " ]\n", + " .groupby([\"Year\", \"Activity_Group\"])\n", + " .size()\n", + " .sort_values(ascending=False)\n", + " .head(15)\n", + " .reset_index(name=\"Count\")\n", + ")\n", + "\n", + "top_15" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "9b2cbe25", + "metadata": {}, + "outputs": [], + "source": [ + "#Conclution: No relevant Insights - Can't see a patern - Lets see amount of report over the year and compare." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "2792f0bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Year\n", + "1960 85\n", + "1961 73\n", + "1962 82\n", + "1963 59\n", + "1964 64\n", + " ... \n", + "2022 98\n", + "2023 108\n", + "2024 52\n", + "2025 68\n", + "2026 27\n", + "Length: 67, dtype: int64\n" + ] + } + ], + "source": [ + "attacks_by_year = (\n", + " shark_attack_clean_df\n", + " .groupby(\"Year\")\n", + " .size()\n", + ")\n", + "\n", + "print(attacks_by_year)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "99db777b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Total_AttacksProvoked_FishingPercentage
Year
19608512.014.12
19617315.020.55
1962829.010.98
1963599.015.25
1964641.01.56
1965453.06.67
1966567.012.50
1967485.010.42
1968470.00.00
1969283.010.71
1970372.05.41
1971291.03.45
1972350.00.00
1973271.03.70
1974390.00.00
\n", + "
" + ], + "text/plain": [ + " Total_Attacks Provoked_Fishing Percentage\n", + "Year \n", + "1960 85 12.0 14.12\n", + "1961 73 15.0 20.55\n", + "1962 82 9.0 10.98\n", + "1963 59 9.0 15.25\n", + "1964 64 1.0 1.56\n", + "1965 45 3.0 6.67\n", + "1966 56 7.0 12.50\n", + "1967 48 5.0 10.42\n", + "1968 47 0.0 0.00\n", + "1969 28 3.0 10.71\n", + "1970 37 2.0 5.41\n", + "1971 29 1.0 3.45\n", + "1972 35 0.0 0.00\n", + "1973 27 1.0 3.70\n", + "1974 39 0.0 0.00" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparison = pd.DataFrame({\n", + " \"Total_Attacks\": shark_attack_clean_df.groupby(\"Year\").size(),\n", + " \"Provoked_Fishing\": shark_attack_clean_df[\n", + " (shark_attack_clean_df[\"Type\"] == \"Provoked\") &\n", + " (shark_attack_clean_df[\"Activity_Group\"] == \"Fishing\")\n", + " ].groupby(\"Year\").size()\n", + "}).fillna(0)\n", + "\n", + "comparison[\"Percentage\"] = (\n", + " comparison[\"Provoked_Fishing\"]\n", + " / comparison[\"Total_Attacks\"]\n", + " * 100\n", + ").round(2)\n", + "\n", + "comparison.head(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "2eea4437", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Total_AttacksProvoked_FishingPercentage
Year
19617315.020.55
1963599.015.25
19608512.014.12
1985365.013.89
1966567.012.50
1979253.012.00
1962829.010.98
1969283.010.71
1967485.010.42
1976394.010.26
1989535.09.43
2022989.09.18
1980353.08.57
200911910.08.40
1991393.07.69
\n", + "
" + ], + "text/plain": [ + " Total_Attacks Provoked_Fishing Percentage\n", + "Year \n", + "1961 73 15.0 20.55\n", + "1963 59 9.0 15.25\n", + "1960 85 12.0 14.12\n", + "1985 36 5.0 13.89\n", + "1966 56 7.0 12.50\n", + "1979 25 3.0 12.00\n", + "1962 82 9.0 10.98\n", + "1969 28 3.0 10.71\n", + "1967 48 5.0 10.42\n", + "1976 39 4.0 10.26\n", + "1989 53 5.0 9.43\n", + "2022 98 9.0 9.18\n", + "1980 35 3.0 8.57\n", + "2009 119 10.0 8.40\n", + "1991 39 3.0 7.69" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparison.sort_values(\n", + " by=\"Percentage\",\n", + " ascending=False\n", + ").head(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "a968e6bf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Total_AttacksProvoked_FishingPercentage
Year
1972350.00.00
1974390.00.00
1968470.00.00
1986390.00.00
1997570.00.00
2000970.00.00
1992560.00.00
2026270.00.00
2004911.01.10
1995751.01.33
\n", + "
" + ], + "text/plain": [ + " Total_Attacks Provoked_Fishing Percentage\n", + "Year \n", + "1972 35 0.0 0.00\n", + "1974 39 0.0 0.00\n", + "1968 47 0.0 0.00\n", + "1986 39 0.0 0.00\n", + "1997 57 0.0 0.00\n", + "2000 97 0.0 0.00\n", + "1992 56 0.0 0.00\n", + "2026 27 0.0 0.00\n", + "2004 91 1.0 1.10\n", + "1995 75 1.0 1.33" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparison.sort_values(\n", + " by=\"Percentage\",\n", + " ascending=True\n", + ").head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "21ab688d", + "metadata": {}, + "outputs": [], + "source": [ + "#We can see on the 60' and 70's there were more related provoked accidents over the total, so atacks are reduced overall.\n", + "# Or there is a technological advance." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "29d14357", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountryProvoked_Fishing_Attacks
0united states76
1australia56
2south africa33
3mexico9
4new zealand9
5papua new guinea7
6united kingdom6
7bahamas5
8portugal3
9italy3
\n", + "
" + ], + "text/plain": [ + " Country Provoked_Fishing_Attacks\n", + "0 united states 76\n", + "1 australia 56\n", + "2 south africa 33\n", + "3 mexico 9\n", + "4 new zealand 9\n", + "5 papua new guinea 7\n", + "6 united kingdom 6\n", + "7 bahamas 5\n", + "8 portugal 3\n", + "9 italy 3" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#top 10 countries with the highest number of provoked shark attacks associated with fishing activities.\n", + "top_10_provoked_fishing_countries = (\n", + " shark_attack_clean_df[\n", + " (shark_attack_clean_df[\"Type\"] == \"Provoked\") &\n", + " (shark_attack_clean_df[\"Activity_Group\"] == \"Fishing\")\n", + " ]\n", + " .groupby(\"Country\")\n", + " .size()\n", + " .sort_values(ascending=False)\n", + " .head(10)\n", + " .reset_index(name=\"Provoked_Fishing_Attacks\")\n", + ")\n", + "\n", + "top_10_provoked_fishing_countries" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "00fe926d", + "metadata": {}, + "outputs": [], + "source": [ + "#Most shark hunting countries: U.S, Australia and south Africa by difference." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "873bd1e3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vGSxWDJcr+XO52PIkCE2Id7tI2ckydnZWcHBwZJujeCpW7euypUrp169eqlZs2Zyc3PL9muSkcWLF+vy5cv6/vvvbUYpxMbGZquvkqwLai9fvjzD42l9uv09UahQIevxmzdvPtDnT0hIiBo1aqTFixfr9OnTyp8/f7bPvdf+Z/VZVrNmTT3//PN67bXXJEnTpk276yLrqampioyMlKRMP/e++uorjRs3Lst6sjJ79my1b99eo0aNstl/5swZm7DEx8cn2yM8s/qMkB78MxpAzmKECwDARv369XXp0iUtXrzYZv/XX39tPX671atX23wZSklJ0bx581SiRIls/4Xvblq1aqVLly5p4cKFNvtnzZqlggUL6oknnsjy/IEDB+r8+fOKiIiQYRjpjl+6dEkrV66U9H/9mz17tk2ZhQsX6vLlyzb9DwgI0K5du2zKrVmzRpcuXcp+5+5w+1/371dgYKBKlSqlnTt3phvRkPa488uodOuv3R06dFDbtm21b98+Xbly5a7X+vbbb222N27cqCNHjig0NNRmf6tWrVSkSBH16dNHv/zyi7p162bqVLDM1K9fX3/88Ye2b99us//rr7+WxWKxuSWul5eXWrZsqa+//lpLly7VyZMn09055V7qk24tSvvZZ5+pZ8+e6tChg6ZNm2Y91qxZMxmGob/++ivD16hChQqSbt2RydnZOdPn+mFzcnJSnTp1NHbsWEm3po38U1xdXRUcHKzFixfrxo0b1v2XLl1KdzejgIAAm+fvbosJpy1+eurUKU2ZMkVS9l+TjKS9n28PZQzD0Oeff56ubGY/582aNdPZs2eVkpKS4fXT+pT283Xne2L+/PnpFkbOyKlTpzK8q1ZKSooOHDig3LlzZzjaIiv30v/sePXVVzV37lzNnDnTOi0pKytWrNDx48fVvXt3rV27Nt2jXLly+vrrr63PT2avQVYjtCwWS7rQ7aeffko35a5Jkybav39/hotM3ymrz4g73c9nNICcxQgXAICN9u3b69NPP9Wrr76q+Ph4VahQQRs2bNCoUaMUHh6ebk56vnz5VK9ePQ0cONB6l6K9e/dm69bQf/zxh/744w9Jt/5Se+XKFf3vf/+TJAUFBVmnjDRp0kQNGzbUm2++qaSkJJUsWVJz5szR8uXLNXv27LveCeX555/XwIEDNXz4cO3du1evvfaaSpQooStX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ffAv9e6776pz5842+ypUqKBJkyalWxj3bgzD0PXr1zM81qtXL/Xu3VuFCxdWTEyMkpOTrcdu3rzJ7aEBAAAA/GMIXP4DqlatqoULFyogIMA6suBOhw4dUu/evfX5559r/vz5at++vVavXp3h9J8KFSooNTVV69aty3BKUVBQkBYuXGgTvGzcuFHu7u4qVKiQuZ3DY6FAgQIZLpRbpEgRFSv2f1OS6tevr1atWqlHjx6SpPfee09NmjSRv7+/Ll68qLlz5yoqKkrLly9PV9eqVat04MAB67S6GjVqaO/evVq2bJmOHTumXLlyKTAw8CH1EAAAAABsMaXoP6B79+46d+6c2rZtqy1btujPP//UypUr1alTJ6WkpCglJUXt2rVTo0aN1LFjR82cOVN79uzRxIkTM6wvICBAr776qjp16qTFixfr8OHDioqK0vz58yVJ3bp107Fjx/TWW29p7969+uGHHzR48GC9/fbbma7fAki3gr+0u2dJ0qlTp9SuXTsFBgaqfv36io6O1vLly9WwYUOb865evaoePXros88+s77HChUqpClTpqhjx44aOXKkZs2addfRWQAAAABgFka4/AcULFhQv/32m/r376+wsDBdv35dRYsWVePGjWVnZ6fhw4crPj5eP/74o6RboxG++OILtWnTRg0bNlTlypXT1Tlt2jS999576tatm86ePasiRYrovffek3Tri+7PP/+sd955R5UqVVLevHn12muv6YMPPvgnu41HXEbrdcfHx9ts336r8ay4uLho37596fZ37tw53VQmAAAAAPgncJciPLLSVofmLkWPtuzcpQgAAAAAHgfcpQgAAAAAAOARRuACAAAAAABgMgIXAAAAAAAAkxG4AAAAAAAAmIzABQAAAAAAwGQELgAAAAAAACYjcAEAAAAAADAZgQsAAAAAAIDJCFwAAAAAAABMRuACAAAAAABgMgIXAAAAAAAAkxG4AAAAAAAAmIzABQAAAAAAwGQELgAAAAAAACYjcAEAAAAAADAZgQsAAAAAAIDJCFwAAAAAAABMRuACAAAAAABgMvucbgBwN28EB8jDwyOnmwEAAAAAQLYxwgUAAAAAAMBkBC4AAAAAAAAmI3ABAAAAAAAwGYELAAAAAACAyQhcAAAAAAAATEbgAgAAAAAAYDICFwAAAAAAAJMRuAAAAAAAAJiMwAUAAAAAAMBkBC4AAAAAAAAmI3ABAAAAAAAwmX1ONwC4mxlb4+Xi5p7TzUAmutcoltNNAAAAAIBHDiNcAAAAAAAATEbgAgAAAAAAYDICFwAAAAAAAJMRuAAAAAAAAJiMwAUAAAAAAMBkBC4AAAAAAAAmI3ABAAAAAAAwGYELAAAAAACAyQhcAAAAAAAATEbgAgAAAAAAYDICFwAAAAAAAJMRuAAAAAAAAJiMwAUAAAAAAMBkBC4AAAAAAAAmI3ABAAAAAAAwGYELAAAAAACAyQhcAAAAAAAATEbgAgAAAAAAYDICFwAAAAAAAJMRuPzHRUVFyWKx6MKFCw/9WhaLRYsXL37o18GjzTAMNWnSJFvvh2nTpqlixYry8PCQh4eHatasqWXLltmUmTBhgnx9feXr66tJkybZHIuOjla1atWUkpJidjcAAAAAIEv2Od0AAP8tkydPlsViyVbZwoULa8yYMSpZsqQkadasWWrRooV27NihcuXKaffu3Ro0aJCWLl0qwzDUrFkzNWzYUOXLl1dycrK6du2qGTNmKFeuXA+zSwAAAACQDoELgH/Mzp079eGHHyomJkZ+fn53Ld+8eXOb7ZEjR2ratGnavHmzypUrp7i4OFWsWFH16tWTJFWsWFFxcXEqX768xo8fr5CQEFWvXv2h9AUAAAAAssKUoiyEhoYqIiJC/fr1U968eVWgQAENGTLEpkxiYqLeeOMN5c+fXx4eHqpXr5527txpPZYrVy5t27ZN0q2pFHnz5rX5AjhnzpxMv3jGx8fLYrGke4SGhlrLbNy4USEhIXJxcZG/v78iIiJ0+fJl6/HZs2crODhY7u7uKlCggF566SWdPn060z6fPXtWbdu2VeHChZU7d25VqFBBc+bMuefn5cCBAwoJCZGzs7OCgoK0atWqTK+J/4YrV66obdu2+uSTT1SgQIF7Pj8lJUVz587V5cuXVbNmTUlShQoVtH//fh09elRHjhzR/v37Vb58eR08eFCRkZEaMWKE2d0AAAAAgGwhcLmLWbNmydXVVdHR0Ro3bpyGDRtmDQ8Mw1DTpk118uRJ/fzzz9q2bZuqVq2q+vXr69y5c/L09FTlypUVFRUlSdq1a5f1v0lJSZJuraFSp06dDK/t7++vhIQE62PHjh3y9vZWSEiIJGn37t0KCwtT69attWvXLs2bN08bNmxQjx49rHXcuHFDw4cP186dO7V48WIdPnxYHTp0yLS/165dU7Vq1bR06VLt2bNHb7zxhtq1a6fo6OhsPy+pqalq3bq1cuXKpc2bN2v69Onq37//XZ/r69evKykpyeaBf4/evXurVq1aatGixT2dt3v3brm5ucnJyUldu3bVokWLFBQUJEkqW7asRo0apYYNG6pRo0YaPXq0ypYtq65du2rcuHFasWKFypcvrypVqujXX399GN0CAAAAgAxZDMMwcroRj6rQ0FClpKRo/fr11n01atRQvXr1NGbMGK1Zs0atWrXS6dOn5eTkZC1TsmRJ9evXT2+88Yb69Omj/fv368cff9RHH32kDRs26M8//9Tw4cMVHh6uwMBA9e7dW127ds2yLdeuXVNoaKh8fHz0ww8/yM7OTu3bt5eLi4s+++wza7kNGzaoTp06unz5spydndPVExMToxo1aujixYtyc3NTVFSU6tatq/PnzytPnjwZXrtp06YqW7asJkyYkK3nZeXKlQoPD1d8fLwKFy4sSVq+fLmaNGmiRYsWqWXLlhleZ8iQIRo6dGi6/eNX75SLm3uWzw9yTvcaxe5aZsmSJerTp4927NghNzc3SbcWUc7q/ZDmxo0bOnr0qC5cuKCFCxfqiy++0Lp166yhy50iIyP1ww8/aPr06QoMDFRMTIyOHz+ul19+WYcPH7b5WQUAAACA2yUlJcnT01OJiYny8PB4oLoY4XIXFStWtNn28/OzTsnZtm2bLl26JG9vb7m5uVkfhw8f1qFDhyTdCifWr1+v1NRUrVu3TqGhoQoNDdW6det08uRJ7d+/P9MRLrd77bXXdPHiRX333Xeys7OzXj8yMtLm2mFhYUpNTdXhw4clSTt27FCLFi1UtGhRubu7W6cjHT16NMPrpKSkaOTIkapYsaK1XytXrkxXPqvnJS4uTkWKFLGGLZKsU0CyMmDAACUmJlofx44du+s5eDysWbNGhw4dUp48eWRvby97+1vLRz377LM2U+Qy4ujoqJIlSyo4OFijR49WpUqV9NFHH2VY9syZMxo2bJimTJmi6OholS5dWqVKlVLdunWVnJys/fv3m901AAAAAMgQi+behYODg822xWJRamqqpFtTZ/z8/KxThm6XNlokJCREFy9e1Pbt27V+/XoNHz5c/v7+GjVqlCpXrqz8+fOrbNmyWbZhxIgRWr58ubZs2SJ39/8b6ZGamqouXbooIiIi3TlFihTR5cuX1ahRIzVq1EizZ8+Wj4+Pjh49qrCwMN24cSPDa02cOFGTJk3S5MmTVaFCBbm6uqpXr17pymf1vGQ0aCo7d6VxcnJi9MG/1LvvvqvOnTvb7KtQoYImTZqUbmHcuzEMQ9evX8/wWK9evdS7d28VLlxYMTExSk5Oth67efMmt4cGAAAA8I8hcHkAVatW1cmTJ2Vvb6+AgIAMy6St4/LJJ5/IYrEoKChIBQsW1I4dO7R06dK7jm5ZuHChhg0bpmXLlqlEiRLprv/7779bb5l7p927d+vMmTMaM2aM/P39JUlbt27N8nrr169XixYt9Morr0i6FeocOHDgrqHQ7YKCgnT06FGdOHFCBQsWlCRt2rQp2+fj36dAgQIZLpRbpEgRFSv2f1OS6tevr1atWlnXIXrvvffUpEkT+fv76+LFi5o7d66ioqK0fPnydHWtWrVKBw4c0Ndffy3p1jS3vXv3atmyZTp27Jhy5cqlwMDAh9RDAAAAALDFlKIH0KBBA9WsWVMtW7bUihUrFB8fr40bN+qDDz6wCTZCQ0M1e/Zs1alTRxaLRV5eXgoKCtK8efOynE6xZ88etW/fXv3791e5cuV08uRJnTx5UufOnZMk9e/fX5s2bVL37t0VGxurAwcOaMmSJXrrrbck3foy6+joqClTpujPP//UkiVLNHz48Cz7VLJkSa1atUobN25UXFycunTpopMnT97z8xIYGKj27dtr586dWr9+vd5///17qgP/TYcOHdKZM2es26dOnVK7du0UGBio+vXrKzo6WsuXL1fDhg1tzrt69ap69Oihzz77zDrlrlChQpoyZYo6duyokSNHatasWXJxcflH+wMAAADgv4vA5QFYLBb9/PPPCgkJUadOnVS6dGm9+OKLio+Pl6+vr7Vc3bp1lZKSYhOu1KlTRykpKVmOcNm6dauuXLmiESNGyM/Pz/po3bq1pFvrqKxbt04HDhzQ008/rSpVqmjgwIHW20z7+PgoMjJSCxYsUFBQkMaMGWNd+DYzAwcOVNWqVRUWFqbQ0FAVKFDgroua3snOzk6LFi3S9evXVaNGDXXu3FkjR468pzrw72cYRrr3Vnx8vM0txr/88kvFx8fr+vXrOn36tH755Zd0YYskubi4aN++fapcubLN/s6dO+vkyZM6cuSImjZt+hB6AQAAAAAZu6+7FHXo0EGdOnWy3p4YeBjSVofmLkWPtuzcpQgAAAAAHgc5fpeiixcvqlGjRipVqpRGjRqlv/7664EaAQAAAAAA8G9yX4HLwoUL9ddff6lHjx5asGCBAgIC1KRJE/3vf/+zuSsIAAAAAADAf9F9r+Hi7e2tnj17aseOHdqyZYtKliypdu3aqWDBgurdu7cOHDhgZjsBAAAAAAAeGw+8aG5CQoJWrlyplStXKleuXAoPD9fvv/+uoKAgTZo0yYw2AgAAAAAAPFbuK3BJTk7WwoUL1axZMxUtWlQLFixQ7969lZCQoFmzZmnlypX65ptvNGzYMLPbCwAAAAAA8Mizv5+T/Pz8lJqaqrZt22rLli3pbsUqSWFhYcqTJ88DNg8AAAAAAODxc1+By4cffqg2bdrI2dk50zJeXl46fPjwfTcMAAAAAADgcXXPU4pu3rypTp066eDBgw+jPQAAAAAAAI+9ew5c7O3tVbRoUaWkpDyM9gAAAAAAADz27mvR3A8++EADBgzQuXPnzG4PAAAAAADAY+++1nD5+OOPdfDgQRUsWFBFixaVq6urzfHt27eb0jgAAAAAAIDH0X0FLi1atJDFYjG7LQAAAAAAAP8K9xW4DBkyxORmAAAAAAAA/Hvc1xouxYsX19mzZ9Ptv3DhgooXL/7AjQIAAAAAAHic3VfgEh8fn+Fdiq5fv67jx48/cKMAAAAAAAAeZ/c0pWjJkiXWf69YsUKenp7W7ZSUFK1evVrFihUzr3UAAAAAAACPoXsKXFq2bClJslgsevXVV22OOTg4KCAgQBMnTjStcQAAAAAAAI+jewpcUlNTJUnFihVTTEyM8uXL91AaBQAAAAAA8Di7r7sUHT582Ox2AJl6IzhAHh4eOd0MAAAAAACy7b4CF0lavXq1Vq9erdOnT1tHvqT56quvHrhhAAAAAAAAj6v7ClyGDh2qYcOGKTg4WH5+frJYLGa3CwAAAAAA4LF1X4HL9OnTFRkZqXbt2pndHgAAAAAAgMee3f2cdOPGDdWqVcvstgAAAAAAAPwr3Ffg0rlzZ3333XdmtwUAAAAAAOBf4b6mFF27dk0zZszQL7/8oooVK8rBwcHm+IcffmhK4wAAAAAAAB5H9xW47Nq1S5UrV5Yk7dmzx+YYC+gCAAAAAID/uvsKXNauXWt2OwAAAAAAAP417msNFwAAAAAAAGTuvka41K1bN8upQ2vWrLnvBgEAAAAAADzu7itwSVu/JU1ycrJiY2O1Z88evfrqq2a0CwAAAAAA4LF1X4HLpEmTMtw/ZMgQXbp06YEaBNxpxtZ4ubi553QzHlvdaxTL6SYAAAAAwH+OqWu4vPLKK/rqq6/MrBIAAAAAAOCxY2rgsmnTJjk7O5tZJQAAAAAAwGPnvqYUtW7d2mbbMAwlJCRo69atGjhwoCkNAwAAAAAAeFzdV+Di6elps21nZ6fAwEANGzZMjRo1MqVhAAAAAAAAj6v7ClxmzpxpdjsAAAAAAAD+Ne4rcEmzbds2xcXFyWKxKCgoSFWqVDGrXQAAAAAAAI+t+wpcTp8+rRdffFFRUVHKkyePDMNQYmKi6tatq7lz58rHx8fsdgIAAAAAADw27usuRW+99ZaSkpL0+++/69y5czp//rz27NmjpKQkRUREmN1GAAAAAACAx8p9jXBZvny5fvnlF5UtW9a6LygoSJ9++imL5gIAAAAAgP+8+xrhkpqaKgcHh3T7HRwclJqa+sCNAgAAAAAAeJzdV+BSr1499ezZUydOnLDu++uvv9S7d2/Vr1/ftMYBAAAAAAA8ju4rcPnkk0908eJFBQQEqESJEipZsqSKFSumixcvasqUKWa3EQAAAAAA4LFyX2u4+Pv7a/v27Vq1apX27t0rwzAUFBSkBg0amN0+AAAAAACAx849jXBZs2aNgoKClJSUJElq2LCh3nrrLUVERKh69eoqV66c1q9f/1AaCgAAAAAA8Li4p8Bl8uTJev311+Xh4ZHumKenp7p06aIPP/zQtMYBAAAAAAA8ju4pcNm5c6caN26c6fFGjRpp27ZtD9woAAAAAACAx9k9BS6nTp3K8HbQaezt7fX3338/cKMAAAAAAAAeZ/cUuBQqVEi7d+/O9PiuXbvk5+f3wI0CAAAAAAB4nN1T4BIeHq5Bgwbp2rVr6Y5dvXpVgwcPVrNmzUxrHIB/TpcuXVSiRAm5uLjIx8dHLVq00N69e7N9/ujRo2WxWNSrVy+b/RMmTJCvr698fX01adIkm2PR0dGqVq2aUlJSzOgCAAAAADwy7ilw+eCDD3Tu3DmVLl1a48aN0w8//KAlS5Zo7NixCgwM1Llz5/T+++8/rLbiIbJYLFq8eHFONwM5qFq1apo5c6bi4uK0YsUKGYahRo0aZSsMiYmJ0YwZM1SxYkWb/bt379agQYM0Z84cfffdd3rvvfe0Z88eSVJycrK6du2q6dOnK1euXA+lTwAAAACQU+zvpbCvr682btyoN998UwMGDJBhGJJufVkPCwvT1KlT5evr+1AaiocrISFBXl5eOd0M5KA33njD+u+AgACNGDFClSpVUnx8vEqUKJHpeZcuXdLLL7+szz//XCNGjLA5FhcXp4oVK6pevXqSpIoVKyouLk7ly5fX+PHjFRISourVqz+cDgEAAABADrqnwEWSihYtqp9//lnnz5/XwYMHZRiGSpUqxZf1x1yBAgVyugl4hFy+fFkzZ85UsWLF5O/vn2XZ7t27q2nTpmrQoEG6wKVChQrav3+/jh49KsMwtH//fpUvX14HDx5UZGQkdzUDAAAA8K91T1OKbufl5aXq1aurRo0a9x22hIaGqkePHurRo4fy5Mkjb29vffDBB9aRM5I0e/ZsBQcHy93dXQUKFNBLL72k06dPW49HRUXJYrHop59+UqVKleTs7KwnnnjCZnHfIUOGqHLlyjbXnjx5sgICAqzbMTExatiwofLlyydPT0/VqVNH27dvz7L9HTp0UMuWLTVhwgT5+fnJ29tb3bt3V3JysrXMjRs31K9fPxUqVEiurq564oknFBUVJUkyDEM+Pj5auHChtXzlypWVP39+6/amTZvk4OCgS5cuZdiGmzdvKiIiwvr89e/fX6+++qpatmxpLRMQEKDJkyfbnFe5cmUNGTLEun37lKL4+HhZLBZ9//33qlu3rnLnzq1KlSpp06ZNNnVs3LhRISEhcnFxkb+/vyIiInT58mXr8bu9dnj0TJ06VW5ubnJzc9Py5cu1atUqOTo6Zlp+7ty52r59u0aPHp3h8bJly2rUqFFq2LChGjVqpNGjR6ts2bLq2rWrxo0bpxUrVqh8+fKqUqWKfv3114fVLQAAAAD4x9134GKWWbNmyd7eXtHR0fr44481adIkffHFF9bjN27c0PDhw7Vz504tXrxYhw8fVocOHdLV884772jChAmKiYlR/vz59cwzz9gEH3dz8eJFvfrqq1q/fr02b96sUqVKKTw8XBcvXszyvLVr1+rQoUNau3atZs2apcjISEVGRlqPd+zYUb/99pvmzp2rXbt26fnnn1fjxo114MABWSwWhYSEWAOY8+fP648//lBycrL++OMPSbcCpWrVqsnNzS3D648dO1bffvutZs6cqd9++01JSUmmrcXy/vvvq2/fvoqNjVXp0qXVtm1b3bx5U9KttTnCwsLUunVr7dq1S/PmzdOGDRvUo0cP6/nZfe3SXL9+XUlJSTYP/LNefvll7dixQ+vWrVOpUqXUpk2bDBfJlqRjx46pZ8+emj17tpydnTOts2vXrtq3b5/27dunrl27KjIyUu7u7qpZs6Y6d+6sRYsW6cMPP9SLL76o69evP6yuAQAAAMA/6p6nFJnN399fkyZNksViUWBgoHbv3q1Jkybp9ddflyR16tTJWrZ48eL6+OOPVaNGDV26dMkmhBg8eLAaNmwo6VaIU7hwYS1atEht2rTJVjvS1phI89lnn8nLy0vr1q3L8s5LXl5e+uSTT5QrVy6VKVNGTZs21erVq/X666/r0KFDmjNnjo4fP66CBQtKkvr27avly5dr5syZGjVqlEJDQzVjxgxJ0q+//qpKlSqpSJEiioqKUlBQkKKiohQaGprp9adMmaIBAwaoVatWkqRPPvlEP//8c7b6fDd9+/ZV06ZNJUlDhw5VuXLldPDgQZUpU0bjx4/XSy+9ZL0jTalSpfTxxx+rTp06mjZtmpydnbP92qUZPXq0hg4dakrbcX88PT3l6empUqVK6cknn5SXl5cWLVqktm3bpiu7bds2nT59WtWqVbPuS0lJ0a+//qpPPvlE169fT7cY7pkzZzRs2DD9+uuvio6OVunSpVWqVCmVKlVKycnJ2r9/vypUqPDQ+wkAAAAAD1uOj3B58sknZbFYrNs1a9bUgQMHrHdG2bFjh1q0aKGiRYvK3d3dGj4cPXrUpp6aNWta/503b14FBgYqLi4u2+04ffq0unbtqtKlS1u/dF66dCndde5Urlw5my+Vfn5+1mkz27dvl2EYKl26tHWahpubm9atW6dDhw5JujWt6vfff9eZM2e0bt06hYaGKjQ0VOvWrdPNmze1ceNG1alTJ8NrJyYm6tSpU6pRo4Z1X65cuWy+AD+I2+844+fnJ0nWvm3btk2RkZE2/QoLC1NqaqoOHz4sKfuvXZoBAwYoMTHR+jh27Jgp/cD9Mwwj01En9evX1+7duxUbG2t9BAcH6+WXX1ZsbGyGdx7q1auXevfurcKFCyslJcVmFNrNmze5PTQAAACAf40cH+GSlcuXL6tRo0Zq1KiRZs+eLR8fHx09elRhYWG6cePGXc9PC3Ls7Oxs1oWRlG66UYcOHfT3339r8uTJKlq0qJycnFSzZs27XsfBwSHdNVNTUyVJqampypUrl7Zt25buy2faCI/y5cvL29tb69at07p16zRs2DD5+/tr5MiRiomJ0dWrV/XUU09lq59p7uxrdvp/t76lXeP2vnXp0kURERHpzitSpMh9vXZOTk5ycnK6a7tgvj///FPz5s1To0aN5OPjo7/++ktjx46Vi4uLwsPDreXq16+vVq1aqUePHnJ3d1f58uVt6nF1dZW3t3e6/ZK0atUqHThwQF9//bUkqUaNGtq7d6+WLVumY8eOKVeuXAoMDHy4HQUAAACAf0iOBy6bN29Ot12qVCnlypVLe/fu1ZkzZzRmzBjrnVK2bt2aaT1FihSRdGstlP3796tMmTKSJB8fH508eVKGYViDg9jYWJvz169fr6lTp1q/XB47dkxnzpx5oL5VqVJFKSkpOn36tJ5++ukMy6St4/LDDz9oz549evrpp+Xu7q7k5GRNnz5dVatWlbu7e4bnenp6ytfXV1u2bLHWn5KSoh07dtgsEuzj46OEhATrdlJSknUUyv2qWrWqfv/9d5UsWTLD47t37872a4ec5+zsrPXr12vy5Mk6f/68fH19FRISoo0bN9os4nzo0KH7+rm4evWqevTooXnz5snO7tbAukKFCmnKlCnq2LGjnJycNGvWLLm4uJjWJwAAAADISTkeuBw7dkxvv/22unTpou3bt2vKlCmaOHGipFsjJRwdHTVlyhR17dpVe/bs0fDhwzOsZ9iwYfL29pavr6/ef/995cuXz3qnntDQUP39998aN26cnnvuOS1fvlzLli2Th4eH9fySJUvqm2++UXBwsJKSkvTOO+888Je/0qVL6+WXX1b79u01ceJEValSRWfOnNGaNWtUoUIFa7gTGhqq3r17q0qVKtY2hYSE6Ntvv9Xbb7+d5TXeeustjR49WiVLllSZMmU0ZcoUnT9/3mbUS7169RQZGanmzZvLy8tLAwcOzHC6x73o37+/nnzySXXv3l2vv/66XF1dFRcXp1WrVmnKlCn39Noh5xUsWDBba//Ex8dneTxtAeg7ubi4aN++fen2d+7cWZ07d85OEwEAAADgsZLja7i0b99eV69eVY0aNdS9e3e99dZbeuONNyTdGpkRGRmpBQsWKCgoSGPGjNGECRMyrGfMmDHq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set up the figure size for the bar plot\n", + "plt.figure(figsize=(12, 8))\n", + "\n", + "# Create a horizontal bar plot without a specific color palette\n", + "sns.barplot(\n", + " data=top_10_provoked_fishing_countries,\n", + " x='Provoked_Fishing_Attacks',\n", + " y='Country',\n", + " color='skyblue' # Use a single color for all bars\n", + ")\n", + "\n", + "# Add titles and labels\n", + "plt.title('Top 10 Countries by Provoked Fishing-Related Shark Attacks')\n", + "plt.xlabel('Number of Attacks')\n", + "plt.ylabel('Country')\n", + "\n", + "# Percentages for the bars\n", + "total_attacks = top_10_provoked_fishing_countries['Provoked_Fishing_Attacks'].sum()\n", + "for index, value in enumerate(top_10_provoked_fishing_countries['Provoked_Fishing_Attacks']):\n", + " percentage = f\"{value / total_attacks * 100:.1f}%\"\n", + " plt.text(value, index, f' {percentage}', va='center')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "36c832d9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['angola', 'antigua and barbuda', 'argentina', 'aruba', 'australia', 'bahamas', 'bangladesh', 'belize', 'bermuda', 'brazil', 'cabo verde', 'canada', 'cayman islands', 'chile', 'china', 'colombia', 'comoros', 'costa rica', 'croatia', 'cuba', 'dominican republic', 'ecuador', 'egypt', 'egypt / israel', 'el salvador', 'fiji', 'france', 'french polynesia', 'grand cayman', 'greece', 'honduras', 'hong kong', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'jordan', 'kenya', 'liberia', 'libya', 'madagascar', 'malaysia', 'maldives', 'malta', 'marshall islands', 'mauritius', 'mexico', 'micronesia', 'montenegro', 'morocco', 'mozambique', 'namibia', 'new caledonia', 'new zealand', 'nicaragua', 'nigeria', 'norway', 'palau', 'panama', 'papua new guinea', 'philippines', 'portugal', 'puerto rico', 'russian federation', 'saint kitts and nevis', 'saint martin', 'samoa', 'saudi arabia', 'senegal', 'seychelles', 'sierra leone', 'singapore', 'solomon islands', 'somalia', 'south africa', 'south korea', 'spain', 'sri lanka', 'st helena, british overseas territory', 'sudan', 'taiwan', 'tanzania', 'thailand', 'tonga', 'trinidad and tobago', 'tunisia', 'turkiye', 'turks and caicos islands', 'united arab emirates', 'united kingdom', 'united states', 'uruguay', 'vanuatu', 'venezuela', 'vietnam', 'yemen']\n" + ] + } + ], + "source": [ + "countries_list = sorted(\n", + " shark_attack_clean_df[\"Country\"]\n", + " .dropna()\n", + " .unique()\n", + " .tolist()\n", + ")\n", + "\n", + "print(countries_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "732881e8", + "metadata": {}, + "outputs": [], + "source": [ + "south_hemisphere = [\n", + " 'argentina', 'australia', 'brazil', 'chile',\n", + " 'fiji', 'madagascar', 'mauritius',\n", + " 'mozambique', 'namibia', 'new caledonia',\n", + " 'new zealand', 'papua new guinea',\n", + " 'south africa', 'tanzania',\n", + " 'tonga', 'uruguay', 'vanuatu'\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "db5cb066", + "metadata": {}, + "outputs": [], + "source": [ + "def hemisphere(country):\n", + "\n", + " if country in south_hemisphere:\n", + " return \"South\"\n", + "\n", + " return \"North\"" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "154b4457", + "metadata": {}, + "outputs": [], + "source": [ + "shark_attack_clean_df[\"Hemisphere\"] = (\n", + " shark_attack_clean_df[\"Country\"]\n", + " .apply(hemisphere)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "f3cce731", + "metadata": {}, + "outputs": [], + "source": [ + "def get_season(date, hemisphere):\n", + "\n", + " month = date.month\n", + "\n", + " if hemisphere == \"North\":\n", + "\n", + " if month in [12, 1, 2]:\n", + " return \"Winter\"\n", + "\n", + " elif month in [3, 4, 5]:\n", + " return \"Spring\"\n", + "\n", + " elif month in [6, 7, 8]:\n", + " return \"Summer\"\n", + "\n", + " else:\n", + " return \"Autumn\"\n", + "\n", + " elif hemisphere == \"South\":\n", + "\n", + " if month in [12, 1, 2]:\n", + " return \"Summer\"\n", + "\n", + " elif month in [3, 4, 5]:\n", + " return \"Autumn\"\n", + "\n", + " elif month in [6, 7, 8]:\n", + " return \"Winter\"\n", + "\n", + " else:\n", + " return \"Spring\"" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "0822043a", + "metadata": {}, + "outputs": [], + "source": [ + "def get_season(date, hemisphere):\n", + "\n", + " month = date.month\n", + "\n", + " if hemisphere == \"North\":\n", + "\n", + " if month in [12, 1, 2]:\n", + " return \"Winter\"\n", + "\n", + " elif month in [3, 4, 5]:\n", + " return \"Spring\"\n", + "\n", + " elif month in [6, 7, 8]:\n", + " return \"Summer\"\n", + "\n", + " else:\n", + " return \"Autumn\"\n", + "\n", + " elif hemisphere == \"South\":\n", + "\n", + " if month in [12, 1, 2]:\n", + " return \"Summer\"\n", + "\n", + " elif month in [3, 4, 5]:\n", + " return \"Autumn\"\n", + "\n", + " elif month in [6, 7, 8]:\n", + " return \"Winter\"\n", + "\n", + " else:\n", + " return \"Spring\"" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "811fadc0", + "metadata": {}, + "outputs": [], + "source": [ + "shark_attack_clean_df[\"Season\"] = shark_attack_clean_df.apply(\n", + " lambda row: get_season(\n", + " row[\"Date\"],\n", + " row[\"Hemisphere\"]\n", + " ),\n", + " axis=1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "2426cec3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Season\n", + "Summer 1874\n", + "Autumn 1169\n", + "Spring 949\n", + "Winter 740\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_clean_df[\"Season\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "7a0914e3", + "metadata": {}, + "outputs": [], + "source": [ + "#Most attacks happens on summer" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "304c7f28", + "metadata": {}, + "outputs": [], + "source": [ + "#analyze and calculate the number of provoked shark attacks related to fishing activities, grouped by season.\n", + "provoked_fishing_by_season = (\n", + " shark_attack_clean_df[\n", + " (shark_attack_clean_df[\"Type\"] == \"Provoked\") &\n", + " (shark_attack_clean_df[\"Activity_Group\"] == \"Fishing\")\n", + " ]\n", + " .groupby(\"Season\")\n", + " .size()\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "83ea5ea4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DateYearTypeCountryActivitySexInjuryFatal Y/NspecieDate_parsedDate_YearActivity_GroupContains_Fatalshark_nameHemisphereSeason
02026-01-012026UnprovokedaustraliaspearfishingMBite wounds to the headyUndetermined Bull shark most likelyNaT2026FishingFalsebull sharkSouthSummer
12026-01-012026Questionableunited statessurfingMBite wound to the handnBlue fish bite most probableNaT2026SurfingFalseunknownNorthWinter
22026-01-012026UnprovokedaustraliaskindivingMSevere injuries both legsyGreat White SharkNaT2026OtherFalsewhite sharkSouthSummer
32026-01-012026UnprovokedmaldivesswimmingMLeg strpped off flesh later amputated in hospitalnUnknownNaT2026SwimmingFalseunknownNorthWinter
42026-01-012026UnprovokedaustraliasurfingMBite wound to R anklenBronze WhalerNaT2026SurfingFalseunknownSouthSummer
\n", + "
" + ], + "text/plain": [ + " Date Year Type Country Activity Sex \\\n", + "0 2026-01-01 2026 Unprovoked australia spearfishing M \n", + "1 2026-01-01 2026 Questionable united states surfing M \n", + "2 2026-01-01 2026 Unprovoked australia skindiving M \n", + "3 2026-01-01 2026 Unprovoked maldives swimming M \n", + "4 2026-01-01 2026 Unprovoked australia surfing M \n", + "\n", + " Injury Fatal Y/N \\\n", + "0 Bite wounds to the head y \n", + "1 Bite wound to the hand n \n", + "2 Severe injuries both legs y \n", + "3 Leg strpped off flesh later amputated in hospital n \n", + "4 Bite wound to R ankle n \n", + "\n", + " specie Date_parsed Date_Year Activity_Group \\\n", + "0 Undetermined Bull shark most likely NaT 2026 Fishing \n", + "1 Blue fish bite most probable NaT 2026 Surfing \n", + "2 Great White Shark NaT 2026 Other \n", + "3 Unknown NaT 2026 Swimming \n", + "4 Bronze Whaler NaT 2026 Surfing \n", + "\n", + " Contains_Fatal shark_name Hemisphere Season \n", + "0 False bull shark South Summer \n", + "1 False unknown North Winter \n", + "2 False white shark South Summer \n", + "3 False unknown North Winter \n", + "4 False unknown South Summer " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shark_attack_clean_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8daf651d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0FC9/vrrqlatmjp27Kj58+fLyclJ3bt31+zZs/Xpp5/Kz89PtWrVeqgwTkB+RB07dlS7du1UqlQpjR07VteuXdOvv/6arpydnZ3c3NxkMplUqFAhFSpUSM7Ozjp27JgWLVqkb775Rs8//7xKliyp/v3767nnntO8efMk3X0APTQ0VO+//77KlCmjsLAwhYaG3rddJ0+eVOnSpfXcc8/Jx8dHzz33nNq1aydJKlCggCQpb968KlSokHm7YsWKevvttxUQEKDSpUtr9OjRKlGihHlUPF++fLK2tpaLi4u5D5I0adIkvfrqq+rTp49Kly6tmjVravr06friiy908+ZNnTx5Uk5OTmrWrJl8fHxUqVKl+/4lZ9y4cXJzczO/0v7qBAAAAODp9dprr2nPnj3avHmzSpcurTZt2ujmzZuSpNTUVEnS4MGD9eKLL5qfWTaZTPrmm2+yVP///vc/tWnTJt3+8PBwHT16VPv371erVq00duxY1a9fX7a2tho9erS2bt2qLl26qEOHDlnuCwH5EQUGBpq/dnJykouLi86dO5fl83fv3i3DMFSmTBnzX1ucnZ21efNmHTt2TNLdefU1atSwOO/e7Xt17NhRMTEx8vPzU1hYmNatW/fAtly7dk0DBgyQv7+/8ubNK2dnZx08eNA8gpyZXbt2KSIiwqL9oaGhSk1NVVxcnBo0aCAfHx+VKFFC7du318KFC3X9+vVM6xs0aJASExPNr1OnTj2w7QAAAAByl5ubm0qXLq3g4GB9++23OnjwoJYtWyZJ8vLykiT5+/uby9vb26tEiRIPzBuStGXLFh06dOiBIffgwYNauHChRo0apcjISAUHB6tAgQJq06aNdu/eneXZqSzSdQ8rKysZhmGxLzk5OV05W1tbi22TyWT+60hWpKamytraWrt27ZK1tbXFsbTpA/e2IysqV66suLg4rV69Wj/99JPatGmj+vXr69tvv830nPfee09r167V5MmTVapUKTk6Ouqll17S7du3H9iHt99+O8NR4WLFisnOzk67d+9WZGSk1q1bp2HDhik8PFzR0dEZruptb28ve3v7h+4zAAAAgKeHYRi6deuWpLurXNvb2+vQoUN67rnnJN3NV/Hx8fLx8XlgXZ9//rmqVKmigICA+16va9eumjJlipydnZWSkmLOcGn/zWpWIyDfo0CBAuZnbCUpKSlJcXFxj1WnnZ2dxTLnklSpUiWlpKTo3Llzev755zM8z9/fXzt27LDYd+92RlxdXdW2bVu1bdtWL730kho1aqSLFy8qX758srW1TdeWLVu2qGPHjmrVqpWku88kx8fHP7APlStX1m+//aZSpUpl2hYbGxvVr19f9evX1/Dhw5U3b15t3LjxgZ97BgAAAODpdvz4cX399ddq2LChChQooD///FMTJkyQo6OjmjRpIuluNunWrZuGDx8ub29v+fj4aNKkSZKkl19+2VxX2bJlNW7cOHMmke5msW+++UZTpky5bzvmzp2rggULmj8CqlatWgoPD9eOHTu0evVq80zZrCAg36Nu3bqKiIhQ8+bN5e7urqFDh6Yb4X1Yvr6+unr1qjZs2KCKFSsqT548KlOmjF577TV16NBBU6ZMUaVKlXT+/Hlt3LhRAQEBatKkicLCwlSzZk1NnDhRLVu21Lp167RmzZr7Xmvq1Kny8vJSUFCQrKys9M0336hQoULmbwhfX19t2LBBtWrVkr29vdzd3VWqVCl99913at68uUwmk4YOHZruLyy+vr76+eef9corr8je3l758+fXwIED9eyzz6pnz55666235OTkpNjYWK1fv14zZszQypUrdfz4cQUHB8vd3V2rVq1SamrqA5d0BwAAAPD0c3Bw0JYtWzRt2jRdunRJnp6eCg4O1rZt21SwYEFzuUmTJsnGxkbt27fXjRs39Mwzz2jjxo1yd3c3lzl06JASExMt6l+8eLEMwzCvqZSRs2fPauzYsdq2bZt5X/Xq1dWvXz81bdpUBQsW1Pz587PcJ55BvsegQYMUHBysZs2aqUmTJmrZsqVKliz5WHXWrFlT3bp1U9u2bVWgQAFNnDhR0t3VpDt06KB+/frJz89PL7zwgqKiosyLUz377LP67LPPNGPGDAUFBWndunUaMmTIfa/l7OysCRMmqGrVqqpWrZri4+O1atUqWVndfaunTJmi9evXy9vbW5UqVZJ0N1S7u7urZs2aat68uUJDQ1W5cmWLekeOHGn+LLO0xb0CAwO1efNmHTlyRM8//7wqVaqkoUOHmp8zyJs3r7777jvVrVtX5cqV06xZs7Ro0SKVL1/+se4nAAAAgNxXuHBhrVq1SmfPntXt27d16tQpLVy4MN2AmK2trSZPnqyzZ88qKSlJ69evT5cJDMNQx44dLfZ17dpV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anvQZyKnra5+L0dHRx06dCjd/i5duqhLly5ZaSIAAADwVDIZ9z6c+gSFhIQoKCgo3Wf0PozIyEjVqVNHly5dUt68ebOtbf9UqampKleunNq0afOPH7FNSkqSm5ubJm3YK0fnjKeZ/9f0rF48t5sAAAAAPHFp2SAxMVGurq45dp1cH0HG4zlx4oTWrVun2rVr69atW/r4448VFxenV199NbebBgAAAAD/KLn+DDIej5WVlSIiIlStWjXVqlVL+/fv108//aRy5crldtMAAAAA4B8lV0eQM3vG8WGEhISk+wij/xJvb2/98ssvud0MAAAAAPjHYwQZAAAAAAARkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACRJNrndAOBBulb1laura243AwAAAMC/HCPIAAAAAACIgAwAAAAAgCQCMgAAAAAAkgjIAAAAAABIIiADAAAAACCJgAwAAAAAgCQCMgAAAAAAkgjIAAAAAABIIiADAAAAACCJgAwAAAAAgCQCMgAAAAAAkgjIAAAAAABIIiADAAAAACCJgAwAAAAAgCTJJrcbADzInJ3xcnR2ye1m5Kie1YvndhMAAACA/zxGkAEAAAAAEAEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgEZAAAAAABJBGQAAAAAACQRkAEAAAAAkERABgAAAABAEgHZQmRkpEwmky5fvpztdUdERChv3ryZHo+Pj5fJZFJMTEymZUwmk5YvX57tbbtXeHi4goKCcvw6eDgXL17UO++8Iz8/P+XJk0fFihVTWFiYEhMT73velStX1KdPH/n4+MjR0VE1a9ZUdHS0RZnJkyfL09NTnp6emjp1qsWxqKgoValSRSkpKdneJwAAAOBpYpPbDXia1KxZUwkJCXJzc5N0N9T26dMnRwLzo0hISJC7u3tuNwO55PTp0zp9+rQmT54sf39/nThxQt26ddPp06f17bffZnpely5ddODAAX355ZcqXLiwFixYoPr16+v3339XkSJFtH//fg0bNkwrV66UYRhq1qyZGjRooAoVKig5OVndunXTnDlzZG1t/QR7CwAAADx5BOS/sbOzU6FChXK7GZl6mtuGnFehQgUtXbrUvF2yZEmNGTNGr7/+uu7cuSMbm/Q/zjdu3NDSpUv1/fffKzg4WNLdGQLLly/Xp59+qtGjRys2NlaBgYGqW7euJCkwMFCxsbGqUKGCJk2apODgYFWrVu3JdBIAAADIRf+aKda+vr6aNm2axb6goCCFh4ebt00mkz777DO1atVKefLkUenSpbVixQrz8b9PsY6MjFSnTp2UmJgok8kkk8lkruv27dsaMGCAihQpIicnJz3zzDOKjIy0uHZERISKFSumPHnyqFWrVrpw4cJD9Sc1NVVvvfWWypQpoxMnTpjbnzbFOm1K9nfffac6deooT548qlixorZv325Rz9y5c+Xt7W1ux4cffphuqvf48ePl6ekpFxcXvfnmm7p582a6towcOVJFixaVvb29goKCtGbNGvPxtLYsWbJEzz//vBwdHVWtWjUdPnxY0dHRqlq1qpydndWoUSP99ddfD3UfcH+JiYlydXXNMBxL0p07d5SSkiIHBweL/Y6Ojtq6daskKSAgQIcPH9bJkyd14sQJHT58WBUqVNDRo0cVERGh0aNH53g/AAAAgKfBvyYgZ9WIESPUpk0b7du3T02aNNFrr72mixcvpitXs2ZNTZs2Ta6urkpISFBCQoL69+8vSerUqZN++eUXLV68WPv27dPLL7+sRo0a6ciRI5LuPrPZuXNn9ejRQzExMapTp85DhYzbt2+rTZs22rlzp7Zu3SofH59Myw4ePFj9+/dXTEyMypQpo3bt2unOnTuSpF9++UXdunVT7969FRMTowYNGmjMmDEW5y9ZskTDhw/XmDFjtHPnTnl5eWnmzJkWZT766CNNmTJFkydP1r59+xQaGqoXXnjB3N80w4cP15AhQ7R7927Z2NioXbt2GjBggD766CNt2bJFx44d07BhwzLty61bt5SUlGTx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RrzON5MnT2b58uWkp6cft79OnTo888wztGvXjvbt25Oenk6dOnVITU3l2WefZfbs2SQlJdGwYUMWLFhQyNVLkiRJ5zdvsVZY+fLlKVKkCKVLl6ZSpUrh9ksvvZTf/e534ff9+vXj7bff5m9/+xs//elP841TtWpVOnTowPjx48O3A48fP55rrrmGK6644oTHT09P58knnzyLZ3Ruyc3NpX///syZM4fixYufcLvU1FRSU1PD7ydMmEDp0qVp3rw5iYmJZGVl8emnn3LbbbexadMmYmNjC6N8SZIk6bznCrJOKS8vj8GDB1OvXj0qVKhAXFwcc+bMYevWrSfc5+6772bSpEl88803HDp0iNdee43evXuf9DiPPPIIe/bsCb9yc3PP9qlE1bJly9ixYweNGjUiJiaGmJgY5s+fz6hRo4iJiTnuk6l37tzJoEGDGD16NEuWLOHKK6+kVq1aXHvttRw6dIj169dH4UwkSZKk85MryDql4cOHk5GRwciRI0lOTqZUqVIMGDCAgwcPnnCfzp07Exsby7Rp04iNjeXAgQP86le/OulxYmNjz+vV0DZt2rBq1aqItl69elG7dm0efvjh4z6ZesCAAdx3331UrVqVrKwsDh06FO47fPiwX/ckSZIknUUGZEUoVqxYvtC1cOFCunTpQvfu3QE4cuQIGzZsoE6dOiccJyYmhjvvvJPx48cTGxvLbbfdRsmSJQu09sK2fft2tm/fzscffwwc/Yqm0qVLc9lll4WfDN6mTRu6du1KWloapUuXJikpKWKMUqVKUaFChXztAHPnzmXDhg288sorADRt2pScnBxmzZpFbm4uRYoUITExsYDPUpIkSbpwGJAVoUaNGixYsIDbbruN2NhYKlasSM2aNZkyZQqLFi2iXLlyjBgxgu3bt580IAPcdddd4W3ef//9wii/UI0ZMybiM9OtWrUCjn7e+tjDyDZu3MjOnTvPeOyvv/6atLQ0Xn/9dS666OgnIS699FJGjx5Nr169iI2NZeLEiZQoUeKHn4gkSZIkAEJBEATRLkLRlZKSQoMGDRg5ciSLFy/mnnvuYd26dRw4cIAgCPj888/p3bs377zzDiVLlqRPnz5s3bqVPXv2MH369HxjfFurVq3YtWsXq1evPuO69u7dS5kyZXjunZWUiCt9Fs709PRtenmhHUuSJEnSqR3LBnv27CE+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zfTp09m0aROZmZm88cYb+eobNmwY3bp1o3Xr1uTk5ACQkZHB5MmTycnJYf369fztb3+jUqVKlC1b9oyunyTp+zMgS5L0I/TUU0/lu526Tp06vPDCCzz//PPUr1+fDz744KRPeD5TQ4YMYejQodSvX5+FCxfy5ptvUrFiRQCqVKnC+++/T15eHh06dCApKYn+/ftTpkyZiM87n457772XBx54gAceeIDk5GTefvttZsyYQa1atU57jJdffpm2bdtSpkyZfH2/+tWvyM7OZvny5fzqV7+iY8eOXHvttVx88cVMmjQJgOHDhzN37lyqVatGw4YNgaMBtly5crRo0YLOnTvToUMHrr766oixX3zxRW666SZ++9vfUrt2be6++272799/3BozMjK45ZZbaN26NevXrycuLo6hQ4fSuHFjmjRpwubNm3nrrbfO+PpJkr6/UPDdf10lSZIkSboA+StJSZIkSZIwIEuSJEmSBBiQJUmSJEkCDMiSJEmSJAEGZEmSJEmSAAOyJEmSJEmAAVmSJEmSJMCALEmSJEkSYECWJEmSJAkwIEuSJEmSBBiQJUmSJEkC4P8BiDWn9vZ92Y0AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#op 10 countries with the most provoked fishing-related shark attacks\n", + "plt.figure(figsize=(10, 10))\n", + "\n", + "sns.barplot(\n", + " data=top_10_provoked_fishing_countries,\n", + " x='Provoked_Fishing_Attacks',\n", + " y='Country',\n", + " color='skyblue' )\n", + "\n", + "plt.title('Top 10 Countries by Provoked Fishing Attacks')\n", + "plt.xlabel('Number of Attacks')\n", + "plt.ylabel('Country')\n", + "\n", + "total_attacks = top_10_provoked_fishing_countries['Provoked_Fishing_Attacks'].sum()\n", + "for index, value in enumerate(top_10_provoked_fishing_countries['Provoked_Fishing_Attacks']):\n", + " percentage = f\"{value / total_attacks * 100:.1f}%\"\n", + " plt.text(value, index, f' {percentage}', va='center') \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4389f5b5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountryTotal_Attacks
0angola1
1antigua and barbuda1
2argentina1
3aruba1
4australia892
.........
96uruguay1
97vanuatu12
98venezuela7
99vietnam10
100yemen1
\n", + "

101 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Country Total_Attacks\n", + "0 angola 1\n", + "1 antigua and barbuda 1\n", + "2 argentina 1\n", + "3 aruba 1\n", + "4 australia 892\n", + ".. ... ...\n", + "96 uruguay 1\n", + "97 vanuatu 12\n", + "98 venezuela 7\n", + "99 vietnam 10\n", + "100 yemen 1\n", + "\n", + "[101 rows x 2 columns]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#total number of shark attacks for each country\n", + "attacks_by_country = (\n", + " shark_attack_clean_df\n", + " .groupby(\"Country\")\n", + " .size()\n", + " .reset_index(name=\"Total_Attacks\")\n", + ")\n", + "\n", + "attacks_by_country" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d940dfda", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABFMAAAK7CAYAAAA+48BEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfwRJREFUeJzs3Xl8DWf///H3ySLIhliSaCSIJSGEoqVFrNGgli6W3ghK7bXVcqNiadFSiqpWFaVFW0vdraJFVGuLJZaKPUErak/ELpnfH345354mwURI1Ov5eJxHc2auueYzM+cg715zjcUwDEMAAAAAAAC4L3bZXQAAAAAAAMDjhDAFAAAAAADABMIUAAAAAAAAEwhTAAAAAAAATCBMAQAAAAAAMIEwBQAAAAAAwATCFAAAAAAAABMIUwAAAAAAAEwgTAEAAAAAADCBMAUAgAdksVju6xUZGfnQa/niiy/UunVrlSlTRnZ2dvLz88uwbVJSkvr27Stvb2/lzp1bwcHBWrRokan9bdy4Ua+++qqKFi2qXLlyyd3dXTVq1NDHH3+sK1euPODRZI0ZM2Zo7ty5praJjIx8ZNcs1dy5c2WxWLR9+/aH0n9cXNx9f1bj4uLu2tfVq1cVERHxQOcntZ77uTYnT55Ujx49VLp0aeXJk0cFChRQUFCQunTpopMnT1rbhYeHy8XFJdM1mWWxWNSrV68H6uPWrVvy9PSUxWLRt99+m26bjD7Dp06dUkREhKKjox+ohntJ/T5kVB8APIkcsrsAAAAed5s3b7Z5P2bMGK1fv17r1q2zWR4YGPjQa5k/f75Onz6tatWqKSUlRbdu3cqwbcuWLRUVFaXx48erdOnS+uqrr9SmTRulpKSobdu299zXyJEjNXr0aNWoUUNjxoxRyZIldfXqVW3atEkRERE6dOiQJk+enJWHlykzZsxQwYIFFR4eft/bVK5cWZs3b34k1+xR8fLySvNZ7dGjhxISEvTll1+maXs3V69e1ahRoyRJISEhWVrnP/3xxx+qXLmy8uXLpwEDBqhMmTJKSEjQ/v379fXXX+vYsWPy8fF5qDU8TN9//73++usvSdLs2bP18ssvp2mT0Wf41KlTGjVqlPz8/BQcHPwIqgUApCJMAQDgAT377LM27wsVKiQ7O7s0yx+F1atXy87uzsDTJk2aaN++fem2W7lypX766SdrgCJJderU0fHjx/XWW2+pVatWsre3z3A/33zzjUaPHq3OnTtr1qxZslgs1nUvvPCCBg0alOYX98fBrVu3ZLFY5Obmli3X72FycnJKc0xubm66efNmjj7WWbNm6dy5c9q2bZuKFy9uXd68eXP997//VUpKyiOv6dq1a8qTJ0+W9DV79mzlypVLtWvX1po1a/THH3/oqaeeypK+AQAPD7f5AADwCFy4cEE9evSw3g5TokQJDRs2TDdu3LBpl3rbwCeffKLSpUvLyclJgYGB9337TWqQci/Lli2Ti4uLXnnlFZvlHTt21KlTp7R169a7bj969Gjlz59fU6dOtQlSUrm6uqphw4bW99evX9fQoUNVvHhx5cqVS0WLFlXPnj116dIlm+0sFosiIiLS9Ofn52fzf+VTb4lZv369unfvroIFC8rDw0MtW7bUqVOnbLb7/ffftWHDBustLKm3PqXeujB//nwNGDBARYsWlZOTk44cOZLhbT7bt2/Xiy++qAIFCih37tyqVKmSvv76a5s2V69e1cCBA1W8eHHlzp1bBQoUUJUqVbRw4cK7ntNUFy9eVMeOHVWgQAE5OzuradOmOnbsmHX9mDFj5ODgYHN7S6pOnTrJw8ND169fv699pefEiRP6z3/+o8KFC8vJyUkBAQGaNGmSNbSIi4tToUKFJEmjRo2yntfU63PkyBF17NhRpUqVUt68eVW0aFE1bdpUe/fuzVQ958+fl52dnQoXLpzu+vQ+80eOHFFYWJhcXFzk4+OjAQMGpPmujRo1Ss8884wKFCggNzc3Va5cWbNnz5ZhGDbt/Pz81KRJEy1dulSVKlVS7ty5raNy/skwDP33v/+Vo6OjZs2adc9jO3XqlFatWqWmTZvqrbfeUkpKSprbeTL6DEdGRqpq1aqS7nxvU9elfn+2b9+u1q1by8/PT3ny5JGfn5/atGmj48ePp6njzz//VNeuXeXj46NcuXLJ29tbL7/8snXETHoSExMVGhqqIkWKaNu2bZKks2fPWvtxcnJSoUKF9Nxzz+nnn3++57kAgMcNI1MAAHjIrl+/rjp16ujo0aMaNWqUKlSooI0bN2rcuHGKjo7WDz/8YNN+xYoVWr9+vUaPHi1nZ2fNmDFDbdq0kYODQ7q3AGTGvn37FBAQIAcH238KVKhQwbq+Ro0a6W4bHx+vffv2qVWrVsqbN+8992UYhpo3b661a9dq6NChqlmzpvbs2aORI0dq8+bN2rx5s5ycnDJ1HK+//roaN26sr776SidPntRbb72l//znP9ZbrJYtW6aXX35Z7u7umjFjhiSl2dfQoUNVvXp1zZw50/pL++nTp9Psa/369WrUqJGeeeYZzZw5U+7u7lq0aJFatWqlq1evWsOE/v37a/78+Ro7dqwqVaqkK1euaN++fTp//vx9HVPnzp3VoEED6zENHz5cISEh2rNnj/Lly6c33nhD77zzjj755BONHTvWut2FCxe0aNEi9erVS7lz587M6dTZs2dVo0YN3bx5U2PGjJGfn5++//57DRw4UEePHtWMGTPk5eWlVatWqVGjRurcubNef/11SbIGLKdOnZKHh4fGjx+vQoUK6cKFC5o3b56eeeYZ7dq1S2XKlDFVU/Xq1fXRRx+pZcuW6t+/v6pXry43N7cM29+6dUsvvviiOnfurAEDBuiXX37RmDFj5O7urrffftvaLi4uTm+88YaKFSsmSdqyZYt69+6tP//806adJO3cuVMxMTEaPny4ihcvLmdn5zT7vXHjhsLDw/XDDz/of//7nxo1anTPY5s7d66Sk5PVqVMn1a9fX76+vvr88881bNgwa0iZ0We4ZMmSmjNnjjp27Kjhw4ercePGkmQd1RIXF6cyZcqodevWKlCggOLj4/Xxxx+ratWq2r9/vwoWLCjpTpBStWpV3bp1S//9739VoUIFnT9/XqtXr9bFixdVpEiRNHX/8ccfCgsL082bN7V582aVKFFCktSuXTvt3LlT77zzjkqXLq1Lly5p586d9/3ZB4DHigEAALJUhw4dDGdnZ+v7mTNnGpKMr7/+2qbdhAkTDEnGmjVrrMskGXny5DFOnz5tXXb79m2jbNmyhr+/v6k6GjdubPj6+qa7rlSpUkZoaGia5adOnTIkGe+++26G/W7ZssWQZAwZMuS+6li1apUhyXjvvfdsli9evNiQZHz66afWZZKMkSNHpunD19fX6NChg/X9nDlzDElGjx49bNq99957hiQjPj7euqxcuXJG7dq10/S5fv16Q5JRq1atDNetX7/euqxs2bJGpUqVjFu3btm0bdKkieHl5WUkJycbhmEY5cuXN5o3b56mz3tJPaYWLVrYLP/tt98MScbYsWOtyzp06GAULlzYuHHjhnXZhAkTDDs7OyM2Nva+91m7dm2jXLly1vdDhgwxJBlbt261ade9e3fDYrEYBw8eNAzDMM6ePZvhtfqn27dvGzdv3jRKlSpl9OvXz7o8NjbWkGTMmTPnrtunpKQYb7zxhmFnZ2dIMiwWixEQEGD069cvzbF26NAh3e9aWFiYUaZMmQz3kZycbNy6dcsYPXq04eHhYaSkpFjX+fr6Gvb29tZj/ztJRs+ePY3z588bzz//vFG0aFEjOjr6rsfz9+Py9/c3ihYtaty+fdswDMMYOXKkIclYu3atTduMPsNRUVH3dQ4N4851SEpKMpydnY0PP/zQurxTp06Go6OjsX///gy3Tf0+fPPNN8auXbsMb29vo2bNmsb58+dt2rm4uBh9+/a9Zy0A8G/AbT4AADxk69atk7Ozc5pRJakjGdauXWuzvF69ejb/N9je3l6tWrXSkSNH9Mcff2RZXendnnM/68xKHSXyz8kzX3nlFTk7O6c5fjNefPFFm/epI2vSu5UhIy+99NI92xw5ckQHDhzQa6+9Jkm6ffu29RUWFqb4+HgdPHhQklStWjX9+OOPGjJkiCIjI3Xt2rX7rkWSdR+patSoIV9fX61fv9667M0339SZM2f0zTffSJJSUlL08ccfq3Hjxnd9gtO9rFu3ToGBgapWrZrN8vDwcBmGkWZS5fTcvn1b7777rgIDA5UrVy45ODgoV65cOnz4sGJiYkzXZLFYNHPmTB07dkwzZsxQx44ddevWLU2ePFnlypXThg0b0rRv2rSpzbIKFSqk+UysW7dO9evXl7u7u+zt7eXo6Ki3335b58+f15kzZ9JsX7p06XTri42NVfXq1ZWYmKgtW7aoYsWK93VcGzZs0JEjR9ShQwfr/ESpt+t8/vnn99XH3SQlJWnw4MHy9/eXg4ODHBwc5OLioitXrthchx9//FF16tRRQEDAPftcvXq1atasqVq1aumnn35SgQIFbNZXq1ZNc+fO1dixY7Vly5a7ToANAI87whQAAB6y8+fPWx99+neFCxeWg4NDmiHwnp6eafpIXZZVw+U9PDzS7evChQuSlOaXpL9LvS0iNjb2vvZ1/vx5OTg4WG8DSWWxWOTp6flAx+Th4WHzPvUWHjMBxr2eXCPJOnfEwIED5ejoaPPq0aOHJOncuXOSpKlTp2rw4MFavny56tSpowIFCqh58+Y6fPjwfdWT0fX/+3mqVKmSatasqY8++kjSnSfCxMXFPfBjes+fP5/u+fD29rauv5f+/ftrxIgRat68uf73v/9p69atioqKUsWKFU0HS3/n6+ur7t27a/bs2Tp8+LAWL16s69ev66233rJplzdv3jS3OTk5OdnMI7Nt2zbrnD6zZs3Sb7/9pqioKA0bNkxS2s/P3T4j27Zt06FDh9SqVStTE8fOnj1bktSiRQtdunRJly5dkru7u55//nktWbIkzXxCZrVt21bTp0/X66+/rtWrV2vbtm2KiopSoUKFbI7v7Nmz91338uXLde3aNXXv3j3dW/MWL16sDh066LPPPlP16tVVoEABtW/fPt3b5gDgccecKQAAPGQeHh7aunWrDMOwCVTOnDmj27dvW+cuSJXeLx6py/4ZHmRWUFCQFi5cqNu3b9vMm5I6SWj58uUz3NbLy0tBQUFas2aNrl69es95Uzw8PHT79m2dPXvWJlAxDEOnT5+2TqIp3fml958ThUpZFyKl535G4aReo6FDh6ply5bptkmdC8TZ2VmjRo3SqFGj9Ndff1lHqTRt2lQHDhy4574yuv7+/v42y/r06aNXXnlFO3fu1PTp01W6dGk1aNDgnv3fjYeHh+Lj49MsT53U95+f1fQsWLBA7du317vvvmuz/Ny5c8qXL98D1fd3r776qsaNG5fhE6vuZtGiRXJ0dNT3339vE7wsX7483fZ3+4y0atVKnp6eGjZsmFJSUjR8+PB77j8hIUFLliyRJJvP/9999dVX1qDOrISEBH3//fcaOXKkhgwZYl1+48YNa2CaqlChQvc94m3y5MlavHixXnjhBS1btsxmkmnpzudjypQpmjJlik6cOKEVK1ZoyJAhOnPmjFatWpWpYwGAnIqRKQAAPGT16tVTUlJSml/UvvjiC+v6v1u7dq3NUzSSk5O1ePFilSxZMssemdqiRQslJSVZf6FLNW/ePHl7e+uZZ5656/YjRozQxYsX1adPnzRPP5Hu3GKwZs0aSf93fAsWLLBps2TJEl25csXm+P38/LRnzx6bduvWrVNSUtL9H9w/ODk5PdCICOlOUFKqVCnt3r1bVapUSffl6uqaZrsiRYooPDxcbdq00cGDB3X16tV77uvLL7+0eb9p0yYdP35cISEhNstbtGihYsWKacCAAfr555/Vo0ePB749q169etq/f7927txps/yLL76QxWJRnTp1JN19BJDFYkkz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58+flyNHjkhcXJx06tRJGScZGRni4+MjW7dulVOnTsm0adNEp9MxRm2grq5OevXqJe+//76qnGOpbdy+fVuKi4uluLhYAMiyZcukuLhYeQuMq8bO6NGj5bnnnpPDhw/L4cOHRa/XS1xcXKsf7/+qxuJUU1Mj48ePl6CgIDGbzap7VVVVlYiI/PHHH7Jw4UI5duyY2Gw2+emnn6Rv374ycOBAxslFGouRK69vjNG/09Q1T0SksrJSnnzySVmzZk297TmWWl5Tz94ivDe1V0ymULuUmZkpwcHB4u7uLhEREarX8lLLAtDgJzs7W0RE7t69K6NGjZLu3buLVquVXr16SVJSkly4cEHVzr179yQ1NVV8fX3F09NT4uLi6tWhh5eQkCA6nU60Wq0EBgbKpEmT5PTp08p6h8Mh6enpEhAQIB07dpThw4fLqVOnVG0wRq1j9+7dAkCsVquqnGOpbeTn5zd4jUtKShIR142d8vJySUxMlE6dOkmnTp0kMTFRKioqWuko//c1FiebzfbAe1V+fr6IiFy4cEGGDx8uvr6+4u7uLs8++6zMnTtXysvLVfthnB5eYzFy5fWNMfp3mrrmiYisXbtWPD095ebNm/W251hqeU09e4vw3tReaUREWmjSCxERERERERHRI4f/mUJERERERERE5AQmU4iIiIiIiIiInMBkChERERERERGRE5hMISIiIiIiIiJyApMpREREREREREROYDKFiIiIiIiIiMgJTKYQERERERERETmByRQiIiIiIiIiIicwmUJERETUAsrKyqDRaGA2m9u6KwqLxYIhQ4bAw8MD4eHhbd2dZikoKIBGo8HNmzfbuitEREQKJlOIiIjokZScnAyNRoOMjAxV+fbt26HRaNqoV20rPT0dXl5esFqt2Lt3b6N1CwsL4ebmhtGjR9dbt2DBggaTMRqNBtu3b3dRb4mIiNovJlOIiIjokeXh4QGTyYSKioq27orLVFdXP/S2586dw/PPP4/g4GB069at0brr1q3DnDlzcPDgQVy4cOGh90lERPQoYjKFiIiIHlkxMTEICAjAp59++sA6Dc2yWLFiBUJCQpTl5ORkvPrqq1i8eDH8/f3RpUsXLFy4ELW1tUhLS4Ovry+CgoKwbt26eu1bLBZERUXBw8MDYWFhKCgoUK0vKSnBmDFj4O3tDX9/f7zxxhu4fv26sn7k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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#top 10 countries with the highest number of shark attacks\n", + "top_10_countries = attacks_by_country.sort_values(by=\"Total_Attacks\", ascending=False).head(10)\n", + "\n", + "plt.figure(figsize=(12, 8)) \n", + "\n", + "sns.barplot(\n", + " data=top_10_countries,\n", + " x=\"Total_Attacks\",\n", + " y=\"Country\",\n", + " color='lightblue' \n", + ")\n", + "\n", + "plt.title('Top 10 Countries by Total Shark Attacks')\n", + "plt.xlabel('Number of Attacks')\n", + "plt.ylabel('Country')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "dc42f2c1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "shark_name\n", + "unknown 1902\n", + "shark 727\n", + "white shark 604\n", + "tiger shark 243\n", + "bull shark 208\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#calculates the frequency or count of each unique shark name in the \"shark_name\" column\n", + "shark_counts = shark_attack_clean_df[\"shark_name\"].value_counts()\n", + "top_5_sharks = shark_counts.head(5)\n", + "top_5_sharks" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "2b8d77bf", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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18/89NNPZsSIEcbZ2dm0aNHClC5d2nz22Wdm/fr15v333zeSzJgxYxK8l7lz5zb169c3q1atMnPmzDE5cuQwhQoVMm3atDEdO3Y0a9asMVOmTDFeXl6mfv36SX5PjTGmUqVKJkuWLKZgwYJmypQpZv369aZbt25Gkpk1a9ZD348zZ84YV1dXU6hQITNnzhxz8eLFB/aNf0/y5ctnevbsadatW2e+++47kylTJlOlShWHvp9++qkZN26cWb16tdmyZYuZMmWKyZs3b4J+7dq1M66uriZPnjxm+PDhZuPGjWbdunX2/SpWrJi979ixY42zs7P59NNP7W27du0yNpvNNG/e3Pz4449m06ZNZsaMGaZNmzYP3W9j7v6stGvXzv588+bNRpLJkyePadWqlVm9erWZP3++yZUrlylYsGCifoZu375tfHx8zAsvvGCMMea7774zkszMmTPtfS5fvmyGDRtmJJmvvvrKfpxfvnzZnDhxwrz00kvG19fX3r579277uu3btzfTpk0z69evN+vXrzeffvqpSZ8+vRkyZIhDHQMHDjSSTKNGjczixYvNTz/9ZMaOHWsGDhxo72P1+wsg9SFsAXgi/DNsTZkyxUgyixYtcug3YsQII8n89NNP9jZJJn369CYkJMTeFhMTY5599llToECBR752t27dzPTp083WrVvNihUrTKtWrYwk07p160eue2/YCg8PN15eXmbSpEnGGGPeffddkzdvXhMXF5cgbAUHBxtJplu3bg7b27t3r5FkPvzwQ2OMMQcOHDCSzIoVKx5ah6enp8OX4IeJD6J///13ovqXL1/eZM+e3YSHh9vbYmJiTPHixU3OnDlNXFycMeb/gkXPnj0d1m/YsKGRZMaOHevQ/vzzz5vSpUvbn8e/lyVLljSxsbH29vHjxxtJpkGDBg7r9+nTx0gyYWFhxpjEv6fG3P3SLMns3bvXoW/RokVNzZo1H/meTJs2zXh5eRlJRpLx8/Mzbdu2Ndu2bXPoF/+e/LOmkSNHGknm0qVL991+XFyciY6ONlu3bjWSzJEjR+zL2rVrZySZ6dOnJ1gvPgzExsaaHj16GDc3NzNnzhyHPqNHjzaSTGho6CP3858eFLb++QeQRYsWGUkOoedBZs+ebSSZKVOmGGOM/efolVdecei3ePFiI8ls3rw5wTbq1q1rcufO/cjXio2NNdHR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uLjwBRgPde+sg/Hij5m6deuqRo0a+uuvv5Q7d2778q1bt6pEiRJyd3e3t/1zG8CmTZtUtWrVBKOe8f9t2rSpqlevrtOnTzvcsy04OFjPPPMMI/LJjLCFR1q0aJFatGihEydO6Nlnn5UkZc6cWS4uLvL09LTfNLFNmzay2Wxq3769nJyc9PHHH9vv40DQQmIVLVpURYsWlST99ttv+v777zVnzhzt2LFDbm5uKVwdnmY2m83+eXfvF5SQkBBNmDDBPorv6uqaglUiLTDG2EPSTz/9pNKlSzvcLNZmsyldunTKnTu3bt26pT179mjMmDG6cuWKRo8ebd8GgR7/dPz4cVWvXl19+vTR2LFj73uaqYeHhzw8POxnifz666/67rvvtHjxYm3bto3ftcmMsIVHKl++vGrUqKGqVatq06ZNevbZZ3X9+nVJko+Pj/2eC8YYtW7dWjabTW3atJGrq6s++uijlCwdaVhQUJDGjBmjw4cPa+vWrSpevHhKl4SnWPwoxD/vMfPTTz9p3LhxOnfunLZs2cLELXike0e0PvnkEy1dulRLly5NELbi7du3T99//72cnJwUFBQkFxcXxcTEONyUFoj37LPPasaMGerWrZucnZ01atSoh17Xt23bNs2bN087duzQli1b7PezRPLhJxWPlCtXLk2bNk1dunTRq6++qs2bNytz5syKjIx0+OtH/A9xq1at5Orqyg8s/pOiRYvq7bffVp48eRQQEJDS5eApYe652ee5c+d09epVNWnSRBkyZLhv/8DAQN26dUtlypRRrly5HnO1SIvig9bZs2f1888/a8KECfazRu7nhRdekJ+fnwoVKiQnJyeCFu5r8uTJqlixop5//nm1bt1aTk5OevPNNyXpoYHr+eefl3Q3+Pv7+z/usp8KTP2ORLtw4YK6du2qw4cPa9q0afr0009VunRplSlTRs7OzgoPD1d0dLRKlCihqlWrpnS5APCvLF26VH369JG/v79iYmJ04cIFTZs2TbVq1XL4knu/a26AxJg0aZKGDx8uf39/zZs3TwULFkzUehxzuJ+oqCiVK1dOV69e1Zo1a1S8eHHFxsZq3rx5evPNN9WrVy+NGjVKEqefpgT+NIIH+ucPZM6cOTV16lR17dpVderUUf78+XX+/HkdPHhQ0t37JLm7u6t69eopVTIA/Cf79+9X165dNWrUKHXo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1L17dy1atEgXLlxQgwYNJEmurq4qV66cvvrqK3Xt2lUzZ85Uhw4dFBAQwHGVSvF/BZLuBq7FixfryJEjev/997Vs2TJ9//33BC0AaUqePHnUr18/++lcw4cPl6+vryTJz89Pb7/9toYNG6Z3331X48ePlyQNHDhQ8+bNc7huFXiQvHnzys3NTd99953y5s2rGzduyMnJSYGBgfr99981depUHTp0SJIUERGhkydPqm7duqpUqZLWrVtnv9cb8DB58uTRxIkT5ezsrKNHj2rbtm32Zc7OzipTpoxcXV118uRJSSJopWKMbMGubNmyWr16tUJDQxmGBpDmxJ+alStXLg0ZMkRubm4aP368Lly4IOnuhAY+Pj7q1q2bnJ2d1bdvX7m6uqp79+7KnDlzCleP1O7eU/+io6NVsWJFZc+eXa+++qq2bdumunXr6ubNmxo5cqR27typTJkyKSwsTNHR0Vq2bJlu3LihRYsW8aUYiZYvXz599dVXkqR169bp2WefVbt27SRJHh4e8vX1VWxsrP22AVxvmjpxzRYA4Ilx4MABTZs2TWPHjtX169c1YsQIffPNN5o1a5aaNWtm7xcaGqqZM2cqMDDQYcYv4H42b96sixcvqlWrVuratavc3d315Zdf6tdff1WrVq10+/Zt7dq1S5kyZdLevXsVHBys7du3K2/evHrvvffk5uamjh076s6dO5oxY4bSpUuX0ruENOTs2bPq0aOHzp07p2rVqqlcuXI6dOiQvvzySx06dIiZolM5whYA4IkxadIkTZkyRbNnz1bp0qV15swZTZgwQdOnT9c333zjELiYeRCPYoxRRESEGjdurKioKGXIkEFbt27Vjh07VKJECUl3Z79s3bq1Q+C61+nTp/Xdd99pypQp2r59u4oXL54Su4I07uzZs+rTp49WrVql5557TlWqVFGnTp34Y1EaQNgCAKRZ8YHp9u3b8vDwkCRVqVJF0dHR2rFjhyTZA9fs2bM1duxY+2k4QGJdv35dFStW1G+//abhw4fr/fffd1geHBysNm3aKDIyUlu2bFGWLFkkSVFRUfroo4+0YcMGzZw5UyVLlkyJ8vGEuHDhglq1aqWcOXNq0qRJCYI9UifCFgAgTVu7dq1mz56tdu3aqWbNmvrzzz/16quvqnXr1hoyZIgk6dy5c/r000+1bt06nThxQl5eXoxqIdFC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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#op 5 most common shark names involved in attacks\n", + "top_5_df = top_5_sharks.reset_index()\n", + "top_5_df.columns = [\"shark_name\", \"attack_count\"]\n", + "\n", + "# Plotting \n", + "plt.figure(figsize=(10, 6))\n", + "sns.barplot(x=\"shark_name\", y=\"attack_count\", data=top_5_df)\n", + "plt.title('Top 5 Most Common Sharks in Attacks')\n", + "plt.xlabel(\"Shark Name\")\n", + "plt.ylabel(\"Number of Attacks\")\n", + "plt.xticks(rotation=45) \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "04a40971", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PrNi7zWeEx999JEMw9CTTz6py5cv6/Lly9bHUX788cfbPk+eE/369dNrr72mtm3b6ttvv9XWrVu1bds2VahQwabec+fOZfmzlpU1a9bozJkzev75560fNPzdlClTNGjQIC1ZskT16tWTv7+/2rZtqyNHjtzTuQCAGfBMOwDc5wICArR161YZhmET3M+ePaubN2+qcOHCNv1Pnz6daR8ZbQEBAXYf3/j/k2FlNZFcTrRv315jx47Vvn377N524cKFcnFx0dKlS22C45IlS7Lsf7tZxTt06KDg4GANHTpU6enpGjZsmM16Z2dn9evXT/369dPly5f13XffaciQIWrSpIlOnjx5x6/3yu59v/U979Onj+bPn6+vv/5aK1eulJ+fn3Xk2R4Wi0Xjxo1To0aN9L///S/T+oz369aJ23LzGeA7vQcZ1+rgwYMzPQ+fIeN56Aw5nSk+ICBACQkJmdozJve79efEEZYsWaKrV69q8eLFNiPDu3fvzvE+7L3G7yQ9Pd06+WB27/FHH32U7WSCOfHxxx+rU6dOGjNmjE37+fPnbQJ3YGDgHe/uyfDKK6/o6NGj6tSpk27evKlOnTrZrPf09NSoUaM0atQonTlzxjrq3qpVq3v+EAIA8hoj7QBwn2vQoIGSk5Mz/RE/b9486/q/+/77760jmpKUlpamzz77TCVLlszxqFdWx7nTV15lFZgkKTk5WSdPnszRJGu3slgscnZ2tpkELyUl5a6/o3zYsGGaPHmyhg8frsGDB2fbz8/PT08++aR69eqlixcv5mh28U8//dRmtu/jx49r8+bNmb7jukqVKqpZs6bGjRunTz75RDExMVlOmJcTDRs2VKNGjTR69GglJyfbrAsKClLBggW1Z88em/avv/76ro6VE3d6D8qUKaOIiAj98ssvmUauM17e3t53dewGDRrowIED2rlzp037vHnzZLFYVK9evbs+r+xkfKDg5uZmbTMMw+bxhwxubm5Zjpo7+hpftWqVfv/9d/Xq1Uvr1q3L9Hr44Yc1b94868R62dWVcU7Z1fz3c5akZcuW6Y8//rBpa9asmX799dccPZrg5OSk999/X3369FFMTIxmzJiRbd+goCDFxMTomWee0eHDh3Xt2rU77h8AzIyRdgC4z3Xq1EnTpk1T586dFR8fr6ioKG3atEljxoxR8+bNMz0vWrhwYdWvX1+v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dWv9/vvv//SpAAAAAADgcHka2h988EG99dZb2r59u7Zv36769eurTZs21mA+fvx4TZw4UVOnTtW2bdsUHBysRo0a6cqVK9Z9xMbG6quvvtLChQu1adMmJScnq2XLlkpLS8ur0wIAAAAAwCEshmEYeV3E3/n7++vtt99W165dFRISotjYWA0aNEjSX6PqQUFBGjdunF544QUlJiYqMDBQ8+fPV4cOHSRJp06dUmhoqJYvX64mTZrk6JhJSUny9fVVYmKifHx87vkc4sPD73kfQIbicXF5XQIAAAAAB8tpDjXNM+1paWlauHChrl69qho1aiguLk6nT59W48aNrX3c3NwUHR2tzZs3S5J27NihGzdu2PQJCQlRZGSktU9WUlNTlZSUZPMCAAAAAMBs8jy07927V15eXnJzc1OPHj301VdfqVy5cjp9+rQkKSgoyKZ/UFCQdd3p06fl6uqqQoUKZdsnK2PHjpWvr6/1FRoa6uCzAgAAAADg3uV5aC9Tpox2796tLVu26MUXX1Tnzp114MAB63qLxWLT3zCMTG23ulOfwYMHKzEx0fo6efLkvZ0EAAAAAAC5IM9Du6urq0qVKqWqVatq7NixqlChgt59910FBwdLUqYR87Nnz1pH34ODg3X9+nVdunQp2z5ZcXNzs85Yn/ECAAAAAMBs8jy038owDKWmpio8PFzBwcFas2aNdd3169e1YcMG1axZU5JUpUoVubi42PRJSEjQvn37rH0AAAAAALhfOeflwYcMGaJmzZopNDRUV65c0cKFC7V+/XqtXLlSFotFsbGxGjNmjCIiIhQREaExY8bIw8NDHTt2lCT5+vqqW7du6t+/vwICAuTv768BAwYoKipKDRs2zMtTAwAAAADgnuVpaD9z5oz+85//KCEhQb6+vipfvrxWrlypRo0aSZIGDhyolJQU9ezZU5cuXVL16tW1evVqeXt7W/cxadIkOTs7q3379kpJSVGDBg00Z84cFShQIK9OCwAAAAAAhzDd97TnBb6nHWbG97QDAAAA/z733fe0AwAAAAAAW4R2AAAAAABMitAOAAAAAIBJEdoBAAAAADApQjsAAAAAACZFaAcAAAAAwKQI7QAAAAAAmBShHQAAAAAAkyK0AwAAAABgUoR2AAAAAABMitAOAAAAAIBJEdoBAAAAADApQjsAAAAAACZFaAcAAAAAwKQI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bVKxYkUFBgZq9uzZdv8tlp8Q2qHAwECbSbiSkpKs/5jZ46233lLnzp3VoEGDbIN7dsqVK6dNmzbZtG3evFmlS5e2fgKe8Vz7l19+aQ3o0dHR+u677zI9z478JeO59smTJys6OloWi0XR0dFav359lqHdXq6urpk+4a5cubL279+v4sWLq1SpUjav24Wc0NBQ9ejRQ4sXL1b//v31wQcf5LiOjRs3KiYmRo8//riioqIUHBxsnRQvJ1588UW99dZbat26tc0z/7i/ZHU93uqhhx7Szz//bNO2fft2m+XKlSvr8OHDma7fUqVK2f3MrbOzsxo2bKjx48drz549io+P19q1a3O07fbt23Xz5k1NmDBBjz76qEqXLq1Tp07l+NiFCxfW2rVrdfToUXXo0OGe/njFv5PFYlGtWrU0atQo7dq1S66urtbwfTuHDh3S+fPn9dZbb+mxxx7TQw89ZNddWe7u7lq6dKkKFiyoJk2aMBkucuTWD9a3bNmiiIgI69/Dt/7dfuTIkUx3N9nL3d1drVu31pQpU7R+/Xr99NNP2rt3b462/fHHHxUWFqahQ4eqatWqioiIsGuS25IlS2rdunX6+uuv1bt377s9hX89QjtUv359zZ8/Xxs3btS+ffvUuXNnm1vF7PHOO+/o2WefVf369W0mqLiT/v376/vvv9frr7+uX3/9VXPnztXUqVNtbieLjIxUQECAPvnkE2tor1u3rpYsWaKUlBTVrl37rmrG/c/X11cVK1bUxx9/bL026tSpo507d+rXX3/NdBeGvYoXL66tW7cqPj5e58+fV3p6unr16qWLFy/qmWee0c8//6xjx45p9erV6tq1a7aBKjY2VqtWrVJcXJx27typtWvXqmzZsjmuo1SpUlq8eLF2796tX375RR07drT77pHevXvrjTfeUMuWLTN9UIb7Q1bX46169+6t5cuXa+LEiTpy5Ijef/99rVixwmakevjw4Zo3b55Gjhyp/fv36+DBg/rss880bNgwu+pZunSppkyZot27d+v48eOaN2+e0tPTVaZMmRxtX7JkSd28eVPvvfeejh07pvnz52vmzJl21VCkSBGtXbtWhw4dspnkFNi6davGjBmj7du368SJE1q8eLHOnTuXo9+9xYoVk6urq/Xa/Oabb/T666/bdXxPT08tW7ZMzs7Oatasmc23IgBZOXnypPr166fDhw/r008/1Xvvvac+ffpY19evX19Tp07Vzp07tX37dvXo0eOevj5tzpw5mjVrlvbt22f9Hezu7p7jiWpLlSqlEydOaOHChTp69KimTJmSow/F/q506dJat26d9VZ5ZEZohwYPHqw6deqoZcuWat68udq2bWvzvK+9Jk2apPbt26t+/fr69ddfc7RN5cqV9fnnn2vhwoWKjIzU8OHDNXr0aJsZWjNGTyXpsccek/TXMza+vr6qVKmSfHx87rpm3P/q1auntLQ0a0AvVKiQypUrp8DAQLuCcVYGDBigAgUKWPd34sQJhYSE6Mcff1RaWpqaNGmiyMhI9enTR76+vtmOUqalpalXr14qW7asmjZtqjJlymj69Ok5rmPSpEkqVKiQatasqVatWqlJkyaqXLmy3ecTGxurUaNGqXnz5tq8ebPd2yNvZXU93qpWrVqaOXOmJk6cqAoVKmjlypXq27evzW3vTZo00dKlS7VmzRo98sgjevTRRzVx4kS7v1HAz89PixcvVv369VW2bFnNnDlTn376qR5++OEcbV+xYkVNnDhR48aNU2RkpD755BONHTvWrhokKTg4WGvXrtXevXv17LPP8l3ZkCT5+Pjohx9+UPPmzVW6dGkNGzZMEyZMULNmze64bWBgoObMmaMvvvhC5cqV01tvvaV33nnH7hq8vLy0YsUKGYah5s2b28zVANyqU6dOSklJUbVq1dSrVy/17t1b//3vf63rJ0yYoNDQUNWpU0cdO3bUgAED5OHhcdfH8/Pz0wcffKBatWqpfPny+v777/Xtt98qICAgR9u3adNGffv21UsvvaSKFStq8+bNmb65JifKlCmjtWvX6tNPP1X//v3t3v7fzmLw8AAAAP963bt316FDh7L8DmkAAGBeznldAAAAcLx33nlHjRo1kqenp1asWKG5c+fadWcHAAAwB0baAQD4F2rfvr3Wr1+vK1euqESJEurdu7d69OiR12UBAAA7EdoBAAAAADApJqIDAAAAAMCkCO0AAAAAAJgUoR0AAAAAAJMitAMAAAAAYFKEdgAAAAAATIrQDgDAfcxisWjJkiW5su/ixYtr8uTJubJvAACQM4R2AABM6uzZs3rhhRdUrFgxubm5KTg4WE2aNNFPP/2U16Vlaf369bJYLIqMjFRaWprNOj8/P82ZMydvCgMA4D5GaAcAwKSeeOIJ/fLLL5o7d65+/fVXffPNN6pbt64uXryYq8e9fv36PW1/9OhRzZs3z0HVAACQvxHaAQAwocuXL2vTpk0aN26c6tWrp7CwMFWrVk2DBw9WixYtbPqeP39ejz/+uDw8PBQREaFvvvnGui4tLU3dunVTeHi43N3dVaZMGb377rs228fExKht27YaO3asQkJCVLp06Sxrmj17tnx9fbVmzZrb1t67d2+NGDFCf/75Z7Z9Jk6cqKioKHl6eio0NFQ9e/ZUcnKydf2cOXPk5+enpUuXqkyZMvLw8NCTTz6pq1evau7cuSpevLgKFSqk3r1724zqX79+XQMHDtQDDzwgT09PVa9eXevXr79tvQAAmBmhHQAAE/Ly8pKXl5eWLFmi1NTU2/YdNWqU2rdvrz179qh58+Z69tlnraPx6enpevDBB/X555/rwIEDGj58uIYMGaLPP//cZh/ff/+9Dh48qDVr1mjp0qWZjvHOO+9owIABWrVqlRo1anTbemJjY3Xz5k1NnTo12z5OTk6aMmWK9u3bp7lz52rt2rUaOHCgTZ9r165pypQpWrhwoVauXKn169erXbt2Wr58uZYvX6758+frf//7n7788kvrNl26dNGPP/6ohQsXas+ePXrqqafUtGlTHTly5LY1AwBgVhbDMIy8LgIAAGS2aNEide/eXSkpKapcubKio6P19NNPq3z58tY+FotFw4YN0+uvvy5Junr1qry9vbV8+XI1bdo0y/326tVLZ86csYbdmJgYrVy5UidOnJCrq6u1X/HixRUbG6szZ85o7ty5WrVqlaKiorKtd/369apXr54uXbqkzz77TEOGDNGxY8fk6+srPz8/TZ48WTExMVlu+8UXX+jFF1/U+fPnJf010t6lSxf99ttvKlmypCSpR48emj9/vs6cOSMvLy9JUtOmTVW8eHHNnDlTR48eVUREhH7//XeFhIRY992wYUNVq1ZNY8aMudNbDgCA6TDSDgCAST3xxBM6deqUvvnmGzVp0kTr169X5cqVM03o9vcQ7+npKW9vb509e9baNnPmTFWtWlWBgYHy8vLSBx98oBMnTtjsIyoqyiawZ5gwYYLef/99bdq06baB/VbdunVT4cKFNW7cuCzXr1u3To0aNdIDDzwgb29vderUSRcuXNDVq1etfTw8PKyBXZKCgoJUvHhxa2DPaMs41507d8owDJUuXdp6p4KXl5c2bNigo0eP5rh2AADMhNAOAICJFSxYUI0aNdLw4cO1efNmxcTEaMSIETZ9XFxcbJYtFovS09MlSZ9//rn69u2rrl27avXq1dq9e7e6dOmSabI5T0/PLI//2GOPKS0tLdPt9Hfi7OysN954Q++++65OnTpls+748eNq3ry5IiMjtWjRIu3YsUPTpk2TJN24ceO253W7c01PT1eBAgW0Y8cO7d692/o6ePBgpuf4AQC4XzjndQEAACDnypUrZ9f3sm/cuFE1a9ZUz549rW32jDpXq1ZNvXv3VpMmTVSgQAG98sorOd72qaee0ttvv61Ro0bZtG/fvl03b97UhAkT5OT01/iBvR8KZKVSpUpKS0vT2bNn9dhjj93z/gAAMANCOwAAJnThwgU99dRT6tq1q8qXLy9vb29t375d48ePV5s2bXK8n1KlSmnevHlatWqVwsPDNX/+fG3btk3h4eE53keNGjW0YsUKNW3aVM7Ozurbt2+Ot33rrbfUpEkTm7aSJUvq5s2beu+999SqVSv9+OOPmjlzZo73mZ3SpUvr2WefVadOnTRhwgRVqlRJ58+f19q1axUVFaXmzZvf8zEAAPincXs8AAAm5OXlperVq2vSpEmqU6eOIiMj9dprr6l79+63nZX9Vj169FC7du3UoUMHVa9eXRcuXLAZdc+pWrVqadmyZXrttdc0ZcqUHG9Xv3591a9fXzdv3rS2VaxYURMnTtS4ceMUGRmpTz75RGPHjrW7pqzMnj1bnTp1Uv/+/VWmTBm1bt1aW7duVWhoqEP2DwDAP43Z4wEAAAAAMClG2gEAAAAAMClCOwAAAAAAJkVoBwAAAADApAjtAAAAAACYFKEdAAAAAACTIrQDAAAAAGBShHYAAAAAAEyK0A4AAAAAgEkR2gEAAAAAMClCOwAAAAAAJkVoBwAAAADApP4fcapMWUHsJ/gAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#visualize the top 5 shark species associated with fatal attacks\n", + "fatal_attacks = shark_attack_clean_df[shark_attack_clean_df[\"Fatal Y/N\"] == \"y\"][\"shark_name\"].value_counts()\n", + "top_5_fatal_sharks = fatal_attacks.head(5)\n", + "fatal_df = top_5_fatal_sharks.reset_index()\n", + "fatal_df.columns = [\"shark_name\", \"fatal_attack_count\"]\n", + "\n", + "plt.figure(figsize=(12, 6))\n", + "sns.barplot(x=\"shark_name\", y=\"fatal_attack_count\", data=fatal_df, color=\"red\")\n", + "plt.title(\"Top 5 Sharks by Number of Fatal Attacks\")\n", + "plt.xlabel(\"Shark Name\")\n", + "plt.ylabel(\"Number of Fatal Attacks\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "121a5d99", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnwAAAKQCAYAAAAFa6evAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAa+hJREFUeJzt3Xd4VFXixvF30iY9IQkJSQhdeleaqDRBAbvYcBHb6q5lLYvlZy+s6Lq2XbsighULYGFBAbsCoihSlA6hlySk15n7+4MlEtOTSc7Mne/nefIok5uZN5Mp75x77rkOy7IsAQAAwLYCTAcAAABA06LwAQAA2ByFDwAAwOYofAAAADZH4QMAALA5Ch8AAIDNUfgAAABsjsIHAABgcxQ+AAAAm6PweYFXX31VDoej/Cs0NFStWrXSiBEjNG3aNO3fv7/Sz9x3331yOBz1up2CggLdd999+uKLL+r1c1XdVrt27XTaaafV63pq8+abb+rJJ5+s8nsOh0P33XefR2/P05YsWaLjjjtOERERcjgcmjdvXpXbbdu2rcLf++iv4447rl63+dBDD1V7O3VV3X07a9YstWzZUrm5ufW6vqysLMXGxjY6V1M6+m/w9ttvV/r+kcf8wYMHDaQ7/Pyq7jGSl5dX5+up6TlVV8OHD9fw4cNr3a60tFQvvPCCBgwYoLi4OIWHh6tt27Y688wzNXfu3PLtvvjiCzkcDr333nuNylVXl156qSIjIxt9PTfffLMcDke1r3vfffed7rvvPh06dKjS95599lm9+uqrjc5QG0+/Ljf0NUCSpk+frtTUVOXn53ssDxqHwudFZsyYoaVLl2rRokV65pln1LdvXz3yyCPq1q2bFi9eXGHbK6+8UkuXLq3X9RcUFOj++++vd+FryG01RE1vTkuXLtWVV17Z5BkayrIsnX/++QoODtaHH36opUuXatiwYTX+zPXXX6+lS5dW+Krvm4InCl9VCgoKdMcdd+i2225TVFRUvX62RYsWuummm3TLLbeopKTE49k87c4771RpaanpGJUMHTq00uNj6dKlCg8Pr/N1eKLw1dWkSZN0/fXXa8SIEXr99df10Ucf6a677lJQUJA++eSTZsnQVEpLS/X6669LkhYuXKhdu3ZV2ua7777T/fffb7TweVJjXgMkafLkyYqIiNA///nPJkiHhggyHQC/69mzZ4URnnPPPVc33XSTTjjhBJ1zzjnauHGjkpKSJEmtW7dW69atmzRPQUGBwsPDm+W2ajN48GCjt1+b3bt3KzMzU2effbZGjRpVp59p06aN1/5eM2fOVEZGRoNL9l/+8hdNnTpV7733niZOnOjhdJ4zduxYLViwQM8//7yuv/5603EqiI2N9drHxx9t3bpVs2fP1j333KP777+//PJRo0bpz3/+s9xud7NnOvL65QkffPCBDhw4oPHjx2v+/PmaOXOm7rjjDo9ct7dq7GtAUFCQrr76aj344IO67bbbPPa3QMMxwufl2rRpo8cee0y5ubl64YUXyi+vajfrZ599puHDhys+Pl5hYWFq06aNzj33XBUUFGjbtm1q2bKlJOn+++8v3z106aWXVri+lStXasKECWrRooU6duxY7W0dMXfuXPXu3VuhoaHq0KGD/v3vf1f4/pHd1du2batw+ZHdOkdGG4cPH6758+dr+/btFXZfHVHVbsc1a9bozDPPVIsWLRQaGqq+fftq5syZVd7OW2+9pTvvvFMpKSmKjo7WySefrPXr11d/xx/lm2++0ahRoxQVFaXw8HAdf/zxmj9/fvn377vvvvJCfNttt8nhcKhdu3Z1uu6qFBUV6e9//7v69u2rmJgYxcXFaciQIfrggw8qbOdwOJSfn6+ZM2eW319Hdr0dOHBA11xzjbp3767IyEglJiZq5MiR+vrrr+uU4bnnntPpp5+u2NjY8stGjRqlrl27yrKsCttalqVOnTpp/Pjx5ZclJSVp9OjRev7552u8nVWrVsnhcGj69OmVvrdgwQI5HA59+OGH5b/TVVddpbS0NDmdTrVs2VJDhw6tNPpdHyNHjtQpp5yiBx98sE67rV555RX16dNHoaGhiouL09lnn61ff/21wjZHdiFu2rRJ48aNU2RkpNLS0vT3v/9dxcXFDc56tGeeeUYnnXSSEhMTFRERoV69eumf//xnhZHK2p5T999/vwYNGqS4uDhFR0erf//+mj59eqW/b11kZGRIkpKTk6v8fkBA5bea0tLSWp+TixYt0plnnqnWrVsrNDRUnTp10tVXX11pV3tNr19V+fbbb5WQkKDTTjutTrscp0+frpCQEM2YMUNpaWmaMWNGhfvpvvvu0y233CJJat++ffl9/cUXX6hdu3Zau3atvvzyy/LLj7w+1PW5Lklut1v/+c9/1LdvX4WFhZV/IDjy/KjOs88+q6CgIN17773llz333HPq06ePIiMjFRUVpa5du1YqsFW9BkiHX3euu+46vfbaa+rWrZvCw8PVp08fffzxx5Vu++KLL1ZOTk6V0ybQ/Ch8PmDcuHEKDAzUV199Ve0227Zt0/jx4xUSEqJXXnlFCxcu1MMPP6yIiAiVlJQoOTlZCxculCRdccUV5buH7r777grXc84556hTp0569913a32z/vnnn3XjjTfqpptu0ty5c3X88cfrhhtu0L/+9a96/47PPvushg4dqlatWlXYfVWd9evX6/jjj9fatWv173//W3PmzFH37t116aWXVrkL4Y477tD27dv18ssv68UXX9TGjRt1+umny+Vy1Zjryy+/1MiRI5Wdna3p06frrbfeUlRUlE4//XTNnj1b0uFd3nPmzJH0+27ao+csVcftdqusrKzCl2VZKi4uVmZmpqZMmaJ58+bprbfeKh/lnTVrVvnPL126VGFhYRo3blz5/fXss89KkjIzMyVJ9957r+bPn68ZM2aoQ4cOGj58eK279Hfu3KnVq1drxIgRFS6/4YYbtH79ei1ZsqTC5QsWLNDmzZt17bXXVrh8+PDh+vbbb6vcxXVEnz591K9fP82YMaPS91599VUlJiZq3Lhxkg7vMpw3b57uueceffrpp3r55Zd18sknl5eNhnrkkUd08OBBPfroozVuN23aNF1xxRXq0aOH5syZo6eeekq//PKLhgwZoo0bN1bYtrS0VGeccYZGjRqlDz74QJdffrmeeOIJPfLII3XOZVlWpcfHkZGyzZs3a+LEiXrttdf08ccf64orrtCjjz6qq6++uvzna3tObdu2TVdffbXeeecdzZkzR+ecc46uv/56Pfjgg3XOeES3bt0UGxur+++/Xy+++GKlD3hVqctzcvPmzRoyZIiee+45ffrpp7rnnnu0fPlynXDCCVXuhq/L69c777yjUaNG6fzzz9cHH3ygiIiIGnPu3LlTn376qc4880y1bNlSkydP1qZNmyq8Hl955ZXlI8Rz5swpv6/79++vuXPnqkOHDurXr1/55UdeH+r6XJcOf5C44YYbNGDAAM2ePVtvv/22zjjjjGrva8uyNGXKFN144416+eWXy0de3377bV1zzTUaNmyY5s6dq3nz5ummm26qUHyrew04Yv78+Xr66af1wAMP6P333y//8LNly5YK27Vq1Updu3at8AEZBlkwbsaMGZYka8WKFdVuk5SUZHXr1q383/fee6919J/vvffesyRZP//8c7XXceDAAUuSde+991b63pHru+eee6r93tHatm1rORyOSrc3evRoKzo62srPz6/wu23durXCdp9//rklyfr888/LLxs/frzVtm3bKrP/MfeFF15oOZ1OKz09vcJ2Y8eOtcLDw61Dhw5VuJ1x48ZV2O6dd96xJFlLly6t8vaOGDx4sJWYmGjl5uaWX1ZWVmb17NnTat26teV2uy3LsqytW7dakqxHH320xus7etuqvhYtWlRp+7KyMqu0tNS64oorrH79+lX4XkREhDV58uRab/PIdYwaNco6++yzK3zvj/ft7NmzLUnWsmXLKmzncrmsDh06WGeeeWaFy8eOHWt17Nix/L44YtGiRZYka8GCBTVm+/e//21JstavX19+WWZmpuV0Oq2///3v5ZdFRkZaN954Y62/a1388e918cUXWxEREdaePXssy/r9MX/gwAHLsiwrKyvLCgsLq/Q4Sk9Pt5xOpzVx4sTyyyZPnmxJst55550K244bN87q0qVLnfK1bdu2ysfHnXfeWWlbl8tllZaWWrNmzbICAwOtzMzM8u/V9Jyq6joeeOABKz4+vsLfctiwYdawYcNqvY758+dbCQkJ5Vnj4+Ot8847z/rwww8rbNfQ56Tb7bZKS0ut7du3W5KsDz74oPx7Nb1+TZ482YqIiLAsy7IefvhhKzAw0HrkkUdq/X2OeOCBByxJ1sKFCy3LsqwtW7ZYDofDmjRpUoXtHn300Spf6yzLsnr06FGn+7C65/pXX31V7d//aG3btrXGjx9vFRQUWOeee64VExNjLV68uMI21113nRUbG1vj9VT3GmBZh18vkpKSrJycnPLL9u7dawUEBFjTpk2rtP3FF19sJSUl1Xh7aB6M8PkIq5bdLH379lVISIiuuuoqzZw5s9Inrbo699xz67xtjx491KdPnwqXTZw4UTk5OVq5cmWDbr+uPvvsM40aNUppaWkVLr/00ktVUFBQaXTwjDPOqPDv3r17S5K2b99e7W3k5+dr+fLlmjBhQoWj/AIDAzVp0iTt3LmzzruFq3LDDTdoxYoVFb4GDRokSXr33Xc1dOhQRUZGKigoSMHBwZo+fXql3Yc1ef7559W/f3+FhoaWX8eSJUtqvY7du3dLkhITEytcHhAQoOuuu04ff/yx0tPTJR0egVm4cKGuueaaSrv9j/x8VRPcj3bxxRfL6XRWmNT+1ltvqbi4WJdddln5ZQMHDtSrr76qqVOnatmyZR490GLq1KkqLS2tMP/saEuXLlVhYWH5FIgj0tLSNHLkyEqjng6HQ6effnqFy3r37l3h8eZyuaocvTvihBNOqPT4uOaaayRJP/30k8444wzFx8crMDBQwcHBuuSSS+RyubRhw4Y6/c6fffaZTj75ZMXExJRfxz333KOMjIwqVwaozbhx45Senq65c+dqypQp6tGjh+bNm6czzjhD1113XaXt6/Kc3L9/v/7yl78oLS2t/DHctm1bSarycVzd65dlWbr66qt177336s0339Stt95ap9/Jsqzy3bijR4+WdHiX7fDhw/X+++8rJyenTtdTk7o81xcsWCBJlUbRq5KRkaGRI0fq+++/L5+OcrSBAwfq0KFDuuiii/TBBx9UeSR6da8BR4wYMaLCgRxJSUlKTEys8vU0MTFR+/fvV1lZWa3Z0bQofD4gPz9fGRkZSklJqXabjh07avHixUpMTNS1116rjh07qmPHjnrqqafqdVvVzcGpSqtWraq9rLG72WqTkZFRZdYj99Efbz8+Pr7Cv51OpySpsLCw2tvIysqSZVn1up36aN26tY477rgKX1FRUZozZ47OP/98paam6vXXX9fSpUu1YsUKXX755SoqKqrTdT/++OP661//qkGDBun999/XsmXLtGLFCp166qk1/s7S7/dJaGhope9dfvnlCgsLK99d9swzzygsLEyXX355pW2P/HxttxcXF6czzjhDs2bNKt+d9+qrr2rgwIHq0aNH+XazZ8/W5MmT9fLLL2vIkCGKi4vTJZdcor1799Z4/XXRrl07XXPNNXr55Zcr7Z6Vap6jlpKSUulxEB4eXun+czqdFf5+o0aNUnBwcPnXH+/DmJiYSo+PlJQUpaen68QTT9SuXbv01FNP6euvv9aKFSv0zDPPSKr9/pak77//XmPGjJEkvfTSS/r222+1YsUK3XnnnXW+jqqEhYXprLPO0qOPPqovv/xSmzZtUvfu3fXMM89o7dq1Fbat7Tnpdrs1ZswYzZkzR7feequWLFmi77//XsuWLas2Y3WvXyUlJZo9e7Z69OihsWPH1vn3+eyzz7R161add955ysnJ0aFDh3To0CGdf/75Kigo0FtvvVXn66pKXZ/rBw4cUGBgYJWvuX+0YcMGLV++XGPHjlXPnj0rfX/SpEl65ZVXtH37dp177rlKTEzUoEGDtGjRovJtanoNkCr/7aTDf7+q/iahoaGyLKvOr11oOhyl6wPmz58vl8tV61pYJ554ok488US5XC798MMP+s9//qMbb7xRSUlJuvDCC+t0W/VZ26+qN9ojlx15QTjygvHHyeqNXd8sPj5ee/bsqXT5kU+mCQkJjbp+6fDyIgEBAU1+O3/0+uuvq3379po9e3aFv0d9Jvy//vrrGj58uJ577rkKl9flwIQjv1NmZmalN9CYmJjy0jVlyhTNmDFDEydOrDSx+8jPH319Nbnsssv07rvvatGiRWrTpo1WrFhRKXtCQoKefPJJPfnkk0pPT9eHH36o22+/Xfv37y+fn9oYd911l1555RXdcccdFYqm9PvjubrHQkMeBy+88EKFv0ddr2PevHnKz8/XnDlzyke7pMNzauvq7bffVnBwsD7++OMKb+qeXuKnTZs2uuqqq3TjjTdq7dq1le7XmqxZs0arVq3Sq6++qsmTJ5dfvmnTpmp/prrXL6fTqc8//1ynnHKKTj75ZC1cuFAtWrSoNcORg4kef/xxPf7441V+/+h5k/VV1+d6y5Yt5XK5tHfv3lo/lA8ZMkTnnXeerrjiCkmHD77440Ezl112mS677DLl5+frq6++0r333qvTTjtNGzZsUNu2bWt8DaivzMxMOZ1Oj6yFiMZhhM/Lpaena8qUKYqJianzC0tgYKAGDRpU/on/yO7Vuoxq1cfatWu1atWqCpe9+eabioqKUv/+/SWp/Gi0X375pcJ2VR1ZVt0nxKqMGjVKn332WXnxOmLWrFkKDw/3yHIWERERGjRokObMmVMhl9vt1uuvv67WrVurc+fOjb6dP3I4HAoJCanwBrB3794qj9yr7j5zOBzlf+8jfvnllzqtp9i1a1dJh3fXVuVvf/ubDh48qAkTJujQoUNV7q6TVD6toHv37rXe5pgxY5SamqoZM2ZoxowZCg0N1UUXXVTt9m3atNF1112n0aNHe2z6QHx8vG677Ta99957+v777yt8b8iQIQoLCytfi+2InTt3lk8vqK8uXbpUGL2r65HdRx4XR/99LcvSSy+9VGnbmh4fQUFBCgwMLL+ssLBQr732Wj1/i8Nyc3OrXRD6yK7JmvZQVKWq31NShdUK6qNfv3768ssvtXPnTg0fPrzW3dZZWVmaO3euhg4dqs8//7zS18UXX6wVK1ZozZo1FXJWdX/X9Heoy3P9yKjkHz8EVWfy5Ml6++23NWPGjPJd/VWJiIjQ2LFjdeedd6qkpKR8FLa214D62LJlS51eA9D0GOHzImvWrCmfz7N//359/fXXmjFjhgIDAzV37tzyZVWq8vzzz+uzzz7T+PHj1aZNGxUVFemVV16RJJ188smSpKioKLVt21YffPCBRo0apbi4OCUkJDR4CZGUlBSdccYZuu+++5ScnKzXX39dixYt0iOPPFK+5tKAAQPUpUsXTZkyRWVlZWrRooXmzp2rb775ptL19erVS3PmzNFzzz2nY489VgEBAdWeeeLee+/Vxx9/rBEjRuiee+5RXFyc3njjDc2fP1///Oc/FRMT06Df6Y+mTZum0aNHa8SIEZoyZYpCQkL07LPPas2aNXrrrbfqfbaTujjttNM0Z84cXXPNNZowYYJ27NihBx98UMnJyZV2N/bq1UtffPGFPvroIyUnJysqKkpdunTRaaedpgcffFD33nuvhg0bpvXr1+uBBx5Q+/bta51LM2jQIIWFhWnZsmWV5llJUufOnXXqqadqwYIFOuGEEyrN4zxi2bJlio+PV69evWr9nQMDA3XJJZfo8ccfV3R0tM4555wKf8Ps7GyNGDFCEydOVNeuXRUVFaUVK1Zo4cKFOuecc8q3e+CBB/TAAw9oyZIltS58XZUbb7xRzzzzTPmcqSNiY2N1991364477tAll1yiiy66SBkZGbr//vsVGhpaYcmLpjZ69GiFhITooosu0q233qqioiI999xzysrKqrRtdc+p8ePH6/HHH9fEiRN11VVXKSMjQ//6178qlau6Wr9+vU455RRdeOGFGjZsmJKTk5WVlaX58+frxRdf1PDhw3X88cfX6zq7du2qjh076vbbb5dlWYqLi9NHH31UYddjfXXr1k1ff/21Tj75ZJ100klavHhxtWuMvvHGGyoqKtLf/va3KveuxMfH64033tD06dP1xBNPlD/On3rqKU2ePFnBwcHq0qWLoqKi1KtXL7399tuaPXu2OnTooNDQUPXq1avOz/UTTzxRkyZN0tSpU7Vv3z6ddtppcjqd+umnnxQeHl7lGpITJkxQeHi4JkyY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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#visualize the distribution of fatal versus non-fatal shark attacks\n", + "categories = shark_attack_clean_df[\"Fatal Y/N\"].value_counts() \n", + "\n", + "plt.figure(figsize=(8, 8))\n", + "plt.pie(categories, labels=categories.index, autopct=\"%1.1f%%\", startangle=140)\n", + "plt.title(\"Distribution of Fatal(y) vs. Non-Fatal Shark Attacks(n)\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24e87013", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}