diff --git a/READ ME.docx b/READ ME.docx
new file mode 100644
index 0000000..b5a8105
Binary files /dev/null and b/READ ME.docx differ
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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " State | \n",
+ " Location | \n",
+ " Activity | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " ... | \n",
+ " Species | \n",
+ " Source | \n",
+ " pdf | \n",
+ " href formula | \n",
+ " href | \n",
+ " Case Number | \n",
+ " Case Number.1 | \n",
+ " original order | \n",
+ " Unnamed: 21 | \n",
+ " Unnamed: 22 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 24th May | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Queensland | \n",
+ " Kennedy Shoal | \n",
+ " Spearfishing | \n",
+ " Michael Jensz | \n",
+ " M | \n",
+ " 39 | \n",
+ " ... | \n",
+ " Undetermined Bull shark most likely | \n",
+ " Simon de Marchi: 9 News: 7 News: ABC News: | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 17th May | \n",
+ " 2026.0 | \n",
+ " Questionable | \n",
+ " USA | \n",
+ " Maryland | \n",
+ " Assateague State Park | \n",
+ " Surfing | \n",
+ " Brendan Oster | \n",
+ " M | \n",
+ " ? | \n",
+ " ... | \n",
+ " Blue fish bite most probable | \n",
+ " Keithe Cowley: Delmarva Now: | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 16th May | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Western Australia | \n",
+ " Horseshoe Reef Rottnest Island | \n",
+ " Skindiving | \n",
+ " Steven Mattaboni | \n",
+ " M | \n",
+ " 38 | \n",
+ " ... | \n",
+ " Great White Shark | \n",
+ " ABC News: 9 News: 7 News: Simon De Marchi | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14th April | \n",
+ " 2026.0 | \n",
+ " UNprovoked | \n",
+ " Maldives | \n",
+ " Gaafu Alif Atoll | \n",
+ " Kooddoo | \n",
+ " Swimming | \n",
+ " Not stated - on honeymoon | \n",
+ " M | \n",
+ " ? | \n",
+ " ... | \n",
+ " Unknown | \n",
+ " The U.S. Sun: Simon De Marchi | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 3rd April | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " South Australia | \n",
+ " Middleton Beach Fleurieu Peninsula Adelaide | \n",
+ " Surfing | \n",
+ " Oliver Tokic-Bensley | \n",
+ " M | \n",
+ " 16 | \n",
+ " ... | \n",
+ " Bronze Whaler | \n",
+ " ABC News: The Guardian: Andrew Currie and Bob... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 24th May | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " Bite wounds to the head | \n",
+ " Y | \n",
+ " Undetermined Bull shark most likely | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 17th May | \n",
+ " 2026.0 | \n",
+ " Questionable | \n",
+ " USA | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to the hand | \n",
+ " N | \n",
+ " Blue fish bite most probable | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 16th May | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Skindiving | \n",
+ " M | \n",
+ " Severe injuries both legs | \n",
+ " Y | \n",
+ " Great White Shark | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14th April | \n",
+ " 2026.0 | \n",
+ " UNprovoked | \n",
+ " Maldives | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Leg strpped off flesh later amputated in hospital | \n",
+ " N | \n",
+ " Unknown | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 3rd April | \n",
+ " 2026.0 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to R ankle | \n",
+ " N | \n",
+ " Bronze Whaler | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 172 | \n",
+ " 02 Oct-2023 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Surfing | \n",
+ " F | \n",
+ " Minor injury. Shark bit surfboard | \n",
+ " N | \n",
+ " 10' to 12' Galapagos shark | \n",
+ " 2023-10-02 | \n",
+ "
\n",
+ " \n",
+ " | 2126 | \n",
+ " 30-Jun-2007 | \n",
+ " 2007 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Swimming | \n",
+ " F | \n",
+ " Hand bitten | \n",
+ " N | \n",
+ " NaN | \n",
+ " 2007-06-30 | \n",
+ "
\n",
+ " \n",
+ " | 4461 | \n",
+ " 05-Mar-1964 | \n",
+ " 1964 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Skin diving | \n",
+ " M | \n",
+ " Minor injury, abdomen abraded when he collided... | \n",
+ " N | \n",
+ " 1.7 m [5.5'] shark | \n",
+ " 1964-03-05 | \n",
+ "
\n",
+ " \n",
+ " | 1027 | \n",
+ " 02-Jun-2016 | \n",
+ " 2016 | \n",
+ " Unprovoked | \n",
+ " AUSTRALIA | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " No injury, but sharks repeatedly hit their fin... | \n",
+ " NaN | \n",
+ " Bronze whaler sharks x 3 | \n",
+ " 2016-06-02 | \n",
+ "
\n",
+ " \n",
+ " | 2405 | \n",
+ " 06-Aug-2004 | \n",
+ " 2004 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Back, buttocks, left hand & left side of face ... | \n",
+ " N | \n",
+ " 1.2 m [4'] shark | \n",
+ " 2004-08-06 | \n",
+ "
\n",
+ " \n",
+ " | 3789 | \n",
+ " 15-Jun-1981 | \n",
+ " 1981 | \n",
+ " Watercraft | \n",
+ " ENGLAND | \n",
+ " Fishing | \n",
+ " M | \n",
+ " Minor injuries from shark that leapt aboard th... | \n",
+ " N | \n",
+ " 13', 400-lb thresher shark | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 1646 | \n",
+ " 11-Aug--2011 | \n",
+ " 2011 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Lower right leg bitten | \n",
+ " N | \n",
+ " NaN | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 4256 | \n",
+ " 04-Feb-1968 | \n",
+ " 1968 | \n",
+ " Unprovoked | \n",
+ " AUSTRALIA | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " No injury, speargun bitten | \n",
+ " N | \n",
+ " Bronze whaler shark, 3 m [10'] | \n",
+ " 1968-02-04 | \n",
+ "
\n",
+ " \n",
+ " | 2239 | \n",
+ " 21-May-2006 | \n",
+ " 2006 | \n",
+ " Unprovoked | \n",
+ " BRAZIL | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Injuries to left thigh, calf & foot | \n",
+ " N | \n",
+ " NaN | \n",
+ " 2006-05-21 | \n",
+ "
\n",
+ " \n",
+ " | 4743 | \n",
+ " 21-Aug-1960 | \n",
+ " 1960 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Standing in knee-deep water | \n",
+ " M | \n",
+ " Lower right leg bitten, surgically amputated 1... | \n",
+ " N | \n",
+ " NaN | \n",
+ " 1960-08-21 | \n",
+ "
\n",
+ " \n",
+ " | 3250 | \n",
+ " 11-Jun-1993 | \n",
+ " 1993 | \n",
+ " Unprovoked | \n",
+ " HONG KONG | \n",
+ " Swimming | \n",
+ " M | \n",
+ " FATAL | \n",
+ " Y | \n",
+ " NaN | \n",
+ " 1993-06-11 | \n",
+ "
\n",
+ " \n",
+ " | 4485 | \n",
+ " Jan-1964 | \n",
+ " 1964 | \n",
+ " Invalid | \n",
+ " NEW ZEALAND | \n",
+ " Snorkeling | \n",
+ " M | \n",
+ " No injury | \n",
+ " NaN | \n",
+ " Invalid | \n",
+ " 1964-01-01 | \n",
+ "
\n",
+ " \n",
+ " | 536 | \n",
+ " 30-May-2020 | \n",
+ " 2020 | \n",
+ " Unprovoked | \n",
+ " AUSTRALIA | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " No injury, swim fin bitten | \n",
+ " N | \n",
+ " Bull shark | \n",
+ " 2020-05-30 | \n",
+ "
\n",
+ " \n",
+ " | 4216 | \n",
+ " 29-Dec-1968 | \n",
+ " 1968 | \n",
+ " Invalid | \n",
+ " SOUTH AFRICA | \n",
+ " Freediving | \n",
+ " M | \n",
+ " No injury | \n",
+ " NaN | \n",
+ " Questionable incident | \n",
+ " 1968-12-29 | \n",
+ "
\n",
+ " \n",
+ " | 4243 | \n",
+ " 18-May-1968 | \n",
+ " 1968 | \n",
+ " Invalid | \n",
+ " TANZANIA | \n",
+ " Schooner sank during a storm | \n",
+ " NaN | \n",
+ " 6 people rescued, 3 shark-scavenged bodies rec... | \n",
+ " NaN | \n",
+ " Shark involvement not confirmed | \n",
+ " 1968-05-18 | \n",
+ "
\n",
+ " \n",
+ " | 2565 | \n",
+ " 16-Dec-2002 | \n",
+ " 2002 | \n",
+ " Unprovoked | \n",
+ " AUSTRALIA | \n",
+ " Swimming | \n",
+ " M | \n",
+ " FATAL | \n",
+ " Y | \n",
+ " Bull shark | \n",
+ " 2002-12-16 | \n",
+ "
\n",
+ " \n",
+ " | 806 | \n",
+ " 21-Dec-2017 | \n",
+ " 2017 | \n",
+ " Provoked | \n",
+ " MALAYSIA | \n",
+ " Fishing / Wading | \n",
+ " M | \n",
+ " Minor injury to thigh, PROVOKED INCIDENT | \n",
+ " N | \n",
+ " Juvenile nurse shark | \n",
+ " 2017-12-21 | \n",
+ "
\n",
+ " \n",
+ " | 3759 | \n",
+ " 07-Feb-1982 | \n",
+ " 1982 | \n",
+ " Unprovoked | \n",
+ " USA | \n",
+ " Diving | \n",
+ " M | \n",
+ " FATAL Disappeared while diving, bathing suit &... | \n",
+ " Y | \n",
+ " NaN | \n",
+ " 1982-02-07 | \n",
+ "
\n",
+ " \n",
+ " | 3879 | \n",
+ " 27-Sep-1978 | \n",
+ " 1978 | \n",
+ " Unprovoked | \n",
+ " SOUTH AFRICA | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " No injury, shark took his catch, then towed & ... | \n",
+ " N | \n",
+ " White shark, 3.7 m [12'] | \n",
+ " 1978-09-27 | \n",
+ "
\n",
+ " \n",
+ " | 886 | \n",
+ " 11-Jun-2017 | \n",
+ " 2017 | \n",
+ " Unprovoked | \n",
+ " AUSTRALIA | \n",
+ " Body boarding | \n",
+ " M | \n",
+ " No injury, board bitten | \n",
+ " N | \n",
+ " White shark, 4 m | \n",
+ " 2017-06-11 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 24th May | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " Bite wounds to the head | \n",
+ " Y | \n",
+ " Undetermined Bull shark most likely | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 17th May | \n",
+ " 2026 | \n",
+ " Questionable | \n",
+ " USA | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to the hand | \n",
+ " N | \n",
+ " Blue fish bite most probable | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 16th May | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Skindiving | \n",
+ " M | \n",
+ " Severe injuries both legs | \n",
+ " Y | \n",
+ " Great White Shark | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14th April | \n",
+ " 2026 | \n",
+ " UNprovoked | \n",
+ " Maldives | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Leg strpped off flesh later amputated in hospital | \n",
+ " N | \n",
+ " Unknown | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 3rd April | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to R ankle | \n",
+ " N | \n",
+ " Bronze Whaler | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 24th May | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " Bite wounds to the head | \n",
+ " Y | \n",
+ " Undetermined Bull shark most likely | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 17th May | \n",
+ " 2026 | \n",
+ " Questionable | \n",
+ " USA | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to the hand | \n",
+ " N | \n",
+ " Blue fish bite most probable | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 16th May | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Skindiving | \n",
+ " M | \n",
+ " Severe injuries both legs | \n",
+ " Y | \n",
+ " Great White Shark | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14th April | \n",
+ " 2026 | \n",
+ " UNprovoked | \n",
+ " Maldives | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Leg strpped off flesh later amputated in hospital | \n",
+ " N | \n",
+ " Unknown | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 3rd April | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to R ankle | \n",
+ " N | \n",
+ " Bronze Whaler | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 24-May-2026-2026 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " Bite wounds to the head | \n",
+ " Y | \n",
+ " Undetermined Bull shark most likely | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 17-May-2026-2026 | \n",
+ " 2026 | \n",
+ " Questionable | \n",
+ " USA | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to the hand | \n",
+ " N | \n",
+ " Blue fish bite most probable | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 16-May-2026-2026 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Skindiving | \n",
+ " M | \n",
+ " Severe injuries both legs | \n",
+ " Y | \n",
+ " Great White Shark | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 14-Apr-2026-2026 | \n",
+ " 2026 | \n",
+ " UNprovoked | \n",
+ " Maldives | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Leg strpped off flesh later amputated in hospital | \n",
+ " N | \n",
+ " Unknown | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 03-Apr-2026-2026 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " Australia | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Bite wound to R ankle | \n",
+ " N | \n",
+ " Bronze Whaler | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 814 | \n",
+ " 2017-11-13 | \n",
+ " 2017 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " Surfing | \n",
+ " M | \n",
+ " Puncture wounds to feet | \n",
+ " N | \n",
+ " NaN | \n",
+ " NaT | \n",
+ " 2017 | \n",
+ "
\n",
+ " \n",
+ " | 1283 | \n",
+ " 2014-08-01 | \n",
+ " 2014 | \n",
+ " Invalid | \n",
+ " NaN | \n",
+ " Sea disaster | \n",
+ " M | \n",
+ " Shark involvement prior to death not confirmed | \n",
+ " NaN | \n",
+ " Shark involvement not confirmed | \n",
+ " 2014-08-01 | \n",
+ " 2014 | \n",
+ "
\n",
+ " \n",
+ " | 3719 | \n",
+ " 1983-01-01 | \n",
+ " 1983 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " Swimming | \n",
+ " M | \n",
+ " Left leg bitten | \n",
+ " N | \n",
+ " NaN | \n",
+ " NaT | \n",
+ " 1983 | \n",
+ "
\n",
+ " \n",
+ " | 4149 | \n",
+ " 1970-11-01 | \n",
+ " 1970 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " M | \n",
+ " Extensive injuries | \n",
+ " N | \n",
+ " NaN | \n",
+ " 1970-11-01 | \n",
+ " 1970 | \n",
+ "
\n",
+ " \n",
+ " | 4158 | \n",
+ " 1970-08-02 | \n",
+ " 1970 | \n",
+ " Invalid | \n",
+ " NaN | \n",
+ " Sea Disaster Sinking of ferryboat Christina | \n",
+ " NaN | \n",
+ " Sharks scavenged on bodies, but no record of t... | \n",
+ " NaN | \n",
+ " Shark involvement prior to death was not confi... | \n",
+ " 1970-08-02 | \n",
+ " 1970 | \n",
+ "
\n",
+ " \n",
+ " | 4159 | \n",
+ " 1970-07-05 | \n",
+ " 1970 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " M | \n",
+ " Finger or toe severed | \n",
+ " N | \n",
+ " Mako shark | \n",
+ " 1970-07-05 | \n",
+ " 1970 | \n",
+ "
\n",
+ " \n",
+ " | 4166 | \n",
+ " 1970-04-01 | \n",
+ " 1970 | \n",
+ " Provoked | \n",
+ " NaN | \n",
+ " Freediving | \n",
+ " M | \n",
+ " Arm abraded & lacerated. Recorded as PROVOKED ... | \n",
+ " N | \n",
+ " Wobbegong shark | \n",
+ " 1970-04-01 | \n",
+ " 1970 | \n",
+ "
\n",
+ " \n",
+ " | 4170 | \n",
+ " 1970-02-05 | \n",
+ " 1970 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " Wading | \n",
+ " F | \n",
+ " Lacerations to lower leg | \n",
+ " N | \n",
+ " Carpet shark | \n",
+ " 1970-02-05 | \n",
+ " 1970 | \n",
+ "
\n",
+ " \n",
+ " | 4196 | \n",
+ " 1969-08-01 | \n",
+ " 1969 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " M | \n",
+ " Am lacerated | \n",
+ " N | \n",
+ " NaN | \n",
+ " 1969-08-01 | \n",
+ " 1969 | \n",
+ "
\n",
+ " \n",
+ " | 4376 | \n",
+ " 1965-10-21 | \n",
+ " 1965 | \n",
+ " Unprovoked | \n",
+ " NaN | \n",
+ " The boat Caribou II sank | \n",
+ " M | \n",
+ " Survived | \n",
+ " N | \n",
+ " NaN | \n",
+ " 1965-10-21 | \n",
+ " 1965 | \n",
+ "
\n",
+ " \n",
+ " | 4432 | \n",
+ " 1964-09-27 | \n",
+ " 1964 | \n",
+ " Invalid | \n",
+ " NaN | \n",
+ " Spearfishing | \n",
+ " M | \n",
+ " Disappeared, probable drowning but sharks in a... | \n",
+ " NaN | \n",
+ " Shark involvement prior to death was not confi... | \n",
+ " 1964-09-27 | \n",
+ " 1964 | \n",
+ "
\n",
+ " \n",
+ " | 4789 | \n",
+ " 1960-01-26 | \n",
+ " 1960 | \n",
+ " Sea Disaster | \n",
+ " NaN | \n",
+ " Portuguese Airliner with 9 people aboard went ... | \n",
+ " NaN | \n",
+ " As searchers approached wreckage, sharks circl... | \n",
+ " N | \n",
+ " NaN | \n",
+ " 1960-01-26 | \n",
+ " 1960 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Injury | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\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",
+ " Activity | \n",
+ " Injury | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 4418 | \n",
+ " unknown | \n",
+ " FATAL. Said to have been killed by sorcerers t... | \n",
+ "
\n",
+ " \n",
+ " | 486 | \n",
+ " unknown | \n",
+ " Minor lacerations to right foot when he steppe... | \n",
+ "
\n",
+ " \n",
+ " | 1418 | \n",
+ " unknown | \n",
+ " Probable drowning with post-mortem bites | \n",
+ "
\n",
+ " \n",
+ " | 2387 | \n",
+ " unknown | \n",
+ " No injury | \n",
+ "
\n",
+ " \n",
+ " | 322 | \n",
+ " unknown | \n",
+ " Cut to knee | \n",
+ "
\n",
+ " \n",
+ " | 1386 | \n",
+ " unknown | \n",
+ " Arm bitten by captive shark PROVOKED INCIDENT | \n",
+ "
\n",
+ " \n",
+ " | 528 | \n",
+ " unknown | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 3857 | \n",
+ " unknown | \n",
+ " FATAL | \n",
+ "
\n",
+ " \n",
+ " | 3127 | \n",
+ " unknown | \n",
+ " Hand bitten (minor injury) | \n",
+ "
\n",
+ " \n",
+ " | 4144 | \n",
+ " unknown | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 2767 | \n",
+ " unknown | \n",
+ " Non-fatal | \n",
+ "
\n",
+ " \n",
+ " | 3274 | \n",
+ " unknown | \n",
+ " FATAL | \n",
+ "
\n",
+ " \n",
+ " | 4788 | \n",
+ " unknown | \n",
+ " Lower left leg bitten, surgically amputated | \n",
+ "
\n",
+ " \n",
+ " | 3666 | \n",
+ " unknown | \n",
+ " Human remains recovered, evidence of scavengin... | \n",
+ "
\n",
+ " \n",
+ " | 4085 | \n",
+ " unknown | \n",
+ " PROVOKED INCIDENT | \n",
+ "
\n",
+ " \n",
+ " | 3915 | \n",
+ " unknown | \n",
+ " Missing, believed taken by a shark | \n",
+ "
\n",
+ " \n",
+ " | 4272 | \n",
+ " unknown | \n",
+ " Bones and brightly colored bangles recovered ... | \n",
+ "
\n",
+ " \n",
+ " | 532 | \n",
+ " unknown | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " | 2875 | \n",
+ " unknown | \n",
+ " Five cuts on his heel | \n",
+ "
\n",
+ " \n",
+ " | 4084 | \n",
+ " unknown | \n",
+ " Hand bitten | \n",
+ "
\n",
+ " \n",
+ " | 4209 | \n",
+ " unknown | \n",
+ " Foot lacerated. Recorded as PROVOKED INCIDENT | \n",
+ "
\n",
+ " \n",
+ " | 4098 | \n",
+ " unknown | \n",
+ " FATAL | \n",
+ "
\n",
+ " \n",
+ " | 3089 | \n",
+ " unknown | \n",
+ " Minor injury | \n",
+ "
\n",
+ " \n",
+ " | 4316 | \n",
+ " unknown | \n",
+ " No details | \n",
+ "
\n",
+ " \n",
+ " | 4305 | \n",
+ " unknown | \n",
+ " Leg bitten | \n",
+ "
\n",
+ " \n",
+ " | 2352 | \n",
+ " unknown | \n",
+ " Shark-bitten surfboard found adrift | \n",
+ "
\n",
+ " \n",
+ " | 1003 | \n",
+ " unknown | \n",
+ " Minor injury to toes | \n",
+ "
\n",
+ " \n",
+ " | 3087 | \n",
+ " unknown | \n",
+ " No details | \n",
+ "
\n",
+ " \n",
+ " | 4631 | \n",
+ " unknown | \n",
+ " FATAL | \n",
+ "
\n",
+ " \n",
+ " | 3523 | \n",
+ " unknown | \n",
+ " Remains recovered from 4 m, 420-kg, caught 13-... | \n",
+ "
\n",
+ " \n",
+ " | 3669 | \n",
+ " unknown | \n",
+ " Remains recovered 1-4-1984 showed evidence of ... | \n",
+ "
\n",
+ " \n",
+ " | 2975 | \n",
+ " unknown | \n",
+ " 5 m white shark obsrved feeding on remains 6 d... | \n",
+ "
\n",
+ " \n",
+ " | 4225 | \n",
+ " unknown | \n",
+ " Calf injured Recorded as PROVOKED INCIDENT | \n",
+ "
\n",
+ " \n",
+ " | 3579 | \n",
+ " unknown | \n",
+ " Back of left thigh bitten | \n",
+ "
\n",
+ " \n",
+ " | 4327 | \n",
+ " unknown | \n",
+ " No injury to occupant. Shark struck vessel, ja... | \n",
+ "
\n",
+ " \n",
+ " | 324 | \n",
+ " unknown | \n",
+ " Laceration to lower leg | \n",
+ "
\n",
+ " \n",
+ " | 1977 | \n",
+ " unknown | \n",
+ " Minor injuries | \n",
+ "
\n",
+ " \n",
+ " | 3889 | \n",
+ " unknown | \n",
+ " No injury, white shark struck platform | \n",
+ "
\n",
+ " \n",
+ " | 1996 | \n",
+ " unknown | \n",
+ " Lacerations to right foot | \n",
+ "
\n",
+ " \n",
+ " | 4722 | \n",
+ " unknown | \n",
+ " Left wrist bitten by netted shark placed in bo... | \n",
+ "
\n",
+ " \n",
+ " | 4763 | \n",
+ " unknown | \n",
+ " No injury, harpooned shark bit hull, leaving t... | \n",
+ "
\n",
+ " \n",
+ " | 4399 | \n",
+ " unknown | \n",
+ " Thighs abraded, puncture wounds in dorsal surf... | \n",
+ "
\n",
+ " \n",
+ " | 3596 | \n",
+ " unknown | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 4641 | \n",
+ " unknown | \n",
+ " Bodies of hurricane victims bitten by shoals ... | \n",
+ "
\n",
+ " \n",
+ " | 3924 | \n",
+ " unknown | \n",
+ " Face & thorax bitten | \n",
+ "
\n",
+ " \n",
+ " | 564 | \n",
+ " unknown | \n",
+ " Right leg bitten | \n",
+ "
\n",
+ " \n",
+ " | 2442 | \n",
+ " unknown | \n",
+ " Right foot bitten | \n",
+ "
\n",
+ " \n",
+ " | 3709 | \n",
+ " unknown | \n",
+ " Survived | \n",
+ "
\n",
+ " \n",
+ " | 4696 | \n",
+ " unknown | \n",
+ " Considered a doubtful incident | \n",
+ "
\n",
+ " \n",
+ " | 4734 | \n",
+ " unknown | \n",
+ " No injury to occupants, toothmarks on bottom &... | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ " Activity_Group | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 122 | \n",
+ " 2024-01-01 | \n",
+ " 2024 | \n",
+ " Unprovoked | \n",
+ " united states | \n",
+ " surfing | \n",
+ " M | \n",
+ " Not specific shark bite injuries to the body | \n",
+ " f | \n",
+ " Not stated | \n",
+ " 2024-06-23 | \n",
+ " 2024 | \n",
+ " Surfing | \n",
+ "
\n",
+ " \n",
+ " | 245 | \n",
+ " 2023-02-19 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " new caledonia | \n",
+ " swimming | \n",
+ " M | \n",
+ " FATAL, Multiple injuries | \n",
+ " f | \n",
+ " Bull shark | \n",
+ " 2023-02-19 | \n",
+ " 2023 | \n",
+ " Swimming | \n",
+ "
\n",
+ " \n",
+ " | 573 | \n",
+ " 2019-12-12 | \n",
+ " 2019 | \n",
+ " Questionable | \n",
+ " france | \n",
+ " kayaking | \n",
+ " M | \n",
+ " Partial remains recovered 12/26/2019 from shark | \n",
+ " f | \n",
+ " 3.4 m tiger shark | \n",
+ " 2019-12-12 | \n",
+ " 2019 | \n",
+ " Boating/Paddling | \n",
+ "
\n",
+ " \n",
+ " | 579 | \n",
+ " 2019-11-23 | \n",
+ " 2019 | \n",
+ " Questionable | \n",
+ " australia | \n",
+ " spearfishing | \n",
+ " M | \n",
+ " Believed to have drowned. Partial remains wash... | \n",
+ " f | \n",
+ " NaN | \n",
+ " 2019-11-23 | \n",
+ " 2019 | \n",
+ " Fishing | \n",
+ "
\n",
+ " \n",
+ " | 955 | \n",
+ " 2016-11-17 | \n",
+ " 2016 | \n",
+ " Unprovoked | \n",
+ " mozambique | \n",
+ " body recovery | \n",
+ " M | \n",
+ " Body washed up on beach with signs of shark at... | \n",
+ " f | \n",
+ " Unknown | \n",
+ " 2016-11-17 | \n",
+ " 2016 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ " Activity_Group | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 179 | \n",
+ " 2023-09-09 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " philippines | \n",
+ " fishing | \n",
+ " M | \n",
+ " Laceration to left thigh | \n",
+ " m | \n",
+ " NaN | \n",
+ " NaT | \n",
+ " 2023 | \n",
+ " Fishing | \n",
+ "
\n",
+ " \n",
+ " | 329 | \n",
+ " 2022-04-01 | \n",
+ " 2022 | \n",
+ " Unknown | \n",
+ " south africa | \n",
+ " unknown | \n",
+ " M | \n",
+ " Possible drowing and scavenging | \n",
+ " m | \n",
+ " NaN | \n",
+ " 2022-04-01 | \n",
+ " 2022 | \n",
+ " Unknown | \n",
+ "
\n",
+ " \n",
+ " | 1044 | \n",
+ " 2016-04-18 | \n",
+ " 2016 | \n",
+ " Provoked | \n",
+ " french polynesia | \n",
+ " spearfishing | \n",
+ " M | \n",
+ " Laceration to knee by speared shark PROVOKED I... | \n",
+ " m | \n",
+ " Grey reef shark, 2 m | \n",
+ " 2016-04-18 | \n",
+ " 2016 | \n",
+ " Fishing | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ " Activity_Group | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 406 | \n",
+ " 2021-06-28 | \n",
+ " 2021 | \n",
+ " Unprovoked | \n",
+ " united states | \n",
+ " surfing | \n",
+ " F | \n",
+ " Lacerations to thigh and calf | \n",
+ " nq | \n",
+ " NaN | \n",
+ " 2021-06-28 | \n",
+ " 2021 | \n",
+ " Surfing | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " Species | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ " Activity_Group | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 183 | \n",
+ " 2023-08-25 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " australia | \n",
+ " surfing | \n",
+ " M | \n",
+ " Severe injuries to lower limbs | \n",
+ " NaN | \n",
+ " White shark, 3.8-4.2m | \n",
+ " 2023-08-25 | \n",
+ " 2023 | \n",
+ " Surfing | \n",
+ "
\n",
+ " \n",
+ " | 186 | \n",
+ " 2023-08-21 | \n",
+ " 2023 | \n",
+ " Questionable | \n",
+ " bahamas | \n",
+ " unknown | \n",
+ " M | \n",
+ " Body found with shark bites. Possible drowning... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2023-08-21 | \n",
+ " 2023 | \n",
+ " Unknown | \n",
+ "
\n",
+ " \n",
+ " | 211 | \n",
+ " 2023-06-07 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " bahamas | \n",
+ " scuba diving | \n",
+ " F | \n",
+ " Calf severely bitten | \n",
+ " NaN | \n",
+ " Caribbean rreef shark | \n",
+ " 2023-06-07 | \n",
+ " 2023 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ " | 243 | \n",
+ " 2023-03-02 | \n",
+ " 2023 | \n",
+ " Unprovoked | \n",
+ " seychelles | \n",
+ " snorkeling | \n",
+ " M | \n",
+ " Left foot bitten | \n",
+ " NaN | \n",
+ " Lemon shark | \n",
+ " 2023-03-02 | \n",
+ " 2023 | \n",
+ " Diving | \n",
+ "
\n",
+ " \n",
+ " | 247 | \n",
+ " 2023-02-18 | \n",
+ " 2023 | \n",
+ " Questionable | \n",
+ " argentina | \n",
+ " unknown | \n",
+ " M | \n",
+ " Death by misadventure | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2023-02-18 | \n",
+ " 2023 | \n",
+ " Unknown | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 4744 | \n",
+ " 1960-08-14 | \n",
+ " 1960 | \n",
+ " Invalid | \n",
+ " mozambique | \n",
+ " boat with 46 people on board capsized | \n",
+ " Unknown | \n",
+ " 1 survivor | \n",
+ " NaN | \n",
+ " Shark involvement not confirmed | \n",
+ " 1960-08-14 | \n",
+ " 1960 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ " | 4757 | \n",
+ " 1960-06-07 | \n",
+ " 1960 | \n",
+ " Invalid | \n",
+ " united states | \n",
+ " testing classified underwater electronic gear ... | \n",
+ " M | \n",
+ " Legs & arms bitten, coroner unable to determin... | \n",
+ " NaN | \n",
+ " Shark involvement prior to death was not confi... | \n",
+ " 1960-06-07 | \n",
+ " 1960 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ " | 4769 | \n",
+ " 1960-04-14 | \n",
+ " 1960 | \n",
+ " Invalid | \n",
+ " bermuda | \n",
+ " floating on a raft | \n",
+ " M | \n",
+ " No injury, 5 sharks bumped raft | \n",
+ " NaN | \n",
+ " Questionable incident | \n",
+ " 1960-04-14 | \n",
+ " 1960 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ " | 4782 | \n",
+ " 1960-02-27 | \n",
+ " 1960 | \n",
+ " Invalid | \n",
+ " united states | \n",
+ " spearfishing | \n",
+ " M | \n",
+ " Left forearm lacerated | \n",
+ " NaN | \n",
+ " According to Benjamin, the injury was inflicte... | \n",
+ " 1960-02-27 | \n",
+ " 1960 | \n",
+ " Fishing | \n",
+ "
\n",
+ " \n",
+ " | 4787 | \n",
+ " 1960-02-03 | \n",
+ " 1960 | \n",
+ " Invalid | \n",
+ " united states | \n",
+ " s2f-1 airplane crashed immediately after carri... | \n",
+ " Unknown | \n",
+ " Of crew of 4, only 1 person survived (broken l... | \n",
+ " NaN | \n",
+ " Shark involvement prior to deaths was not conf... | \n",
+ " 1960-02-03 | \n",
+ " 1960 | \n",
+ " Other | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Year | \n",
+ " Activity_Group | \n",
+ " Count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1961 | \n",
+ " Fishing | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1960 | \n",
+ " Fishing | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2009 | \n",
+ " Fishing | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1963 | \n",
+ " Fishing | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 2022 | \n",
+ " Fishing | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 2014 | \n",
+ " Fishing | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 1962 | \n",
+ " Fishing | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 2016 | \n",
+ " Fishing | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 1966 | \n",
+ " Fishing | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 2019 | \n",
+ " Fishing | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 2010 | \n",
+ " Fishing | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 2018 | \n",
+ " Fishing | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 2021 | \n",
+ " Fishing | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 2023 | \n",
+ " Fishing | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 2011 | \n",
+ " Fishing | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Total_Attacks | \n",
+ " Provoked_Fishing | \n",
+ " Percentage | \n",
+ "
\n",
+ " \n",
+ " | Year | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1960 | \n",
+ " 85 | \n",
+ " 12.0 | \n",
+ " 14.12 | \n",
+ "
\n",
+ " \n",
+ " | 1961 | \n",
+ " 73 | \n",
+ " 15.0 | \n",
+ " 20.55 | \n",
+ "
\n",
+ " \n",
+ " | 1962 | \n",
+ " 82 | \n",
+ " 9.0 | \n",
+ " 10.98 | \n",
+ "
\n",
+ " \n",
+ " | 1963 | \n",
+ " 59 | \n",
+ " 9.0 | \n",
+ " 15.25 | \n",
+ "
\n",
+ " \n",
+ " | 1964 | \n",
+ " 64 | \n",
+ " 1.0 | \n",
+ " 1.56 | \n",
+ "
\n",
+ " \n",
+ " | 1965 | \n",
+ " 45 | \n",
+ " 3.0 | \n",
+ " 6.67 | \n",
+ "
\n",
+ " \n",
+ " | 1966 | \n",
+ " 56 | \n",
+ " 7.0 | \n",
+ " 12.50 | \n",
+ "
\n",
+ " \n",
+ " | 1967 | \n",
+ " 48 | \n",
+ " 5.0 | \n",
+ " 10.42 | \n",
+ "
\n",
+ " \n",
+ " | 1968 | \n",
+ " 47 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1969 | \n",
+ " 28 | \n",
+ " 3.0 | \n",
+ " 10.71 | \n",
+ "
\n",
+ " \n",
+ " | 1970 | \n",
+ " 37 | \n",
+ " 2.0 | \n",
+ " 5.41 | \n",
+ "
\n",
+ " \n",
+ " | 1971 | \n",
+ " 29 | \n",
+ " 1.0 | \n",
+ " 3.45 | \n",
+ "
\n",
+ " \n",
+ " | 1972 | \n",
+ " 35 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1973 | \n",
+ " 27 | \n",
+ " 1.0 | \n",
+ " 3.70 | \n",
+ "
\n",
+ " \n",
+ " | 1974 | \n",
+ " 39 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Total_Attacks | \n",
+ " Provoked_Fishing | \n",
+ " Percentage | \n",
+ "
\n",
+ " \n",
+ " | Year | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1961 | \n",
+ " 73 | \n",
+ " 15.0 | \n",
+ " 20.55 | \n",
+ "
\n",
+ " \n",
+ " | 1963 | \n",
+ " 59 | \n",
+ " 9.0 | \n",
+ " 15.25 | \n",
+ "
\n",
+ " \n",
+ " | 1960 | \n",
+ " 85 | \n",
+ " 12.0 | \n",
+ " 14.12 | \n",
+ "
\n",
+ " \n",
+ " | 1985 | \n",
+ " 36 | \n",
+ " 5.0 | \n",
+ " 13.89 | \n",
+ "
\n",
+ " \n",
+ " | 1966 | \n",
+ " 56 | \n",
+ " 7.0 | \n",
+ " 12.50 | \n",
+ "
\n",
+ " \n",
+ " | 1979 | \n",
+ " 25 | \n",
+ " 3.0 | \n",
+ " 12.00 | \n",
+ "
\n",
+ " \n",
+ " | 1962 | \n",
+ " 82 | \n",
+ " 9.0 | \n",
+ " 10.98 | \n",
+ "
\n",
+ " \n",
+ " | 1969 | \n",
+ " 28 | \n",
+ " 3.0 | \n",
+ " 10.71 | \n",
+ "
\n",
+ " \n",
+ " | 1967 | \n",
+ " 48 | \n",
+ " 5.0 | \n",
+ " 10.42 | \n",
+ "
\n",
+ " \n",
+ " | 1976 | \n",
+ " 39 | \n",
+ " 4.0 | \n",
+ " 10.26 | \n",
+ "
\n",
+ " \n",
+ " | 1989 | \n",
+ " 53 | \n",
+ " 5.0 | \n",
+ " 9.43 | \n",
+ "
\n",
+ " \n",
+ " | 2022 | \n",
+ " 98 | \n",
+ " 9.0 | \n",
+ " 9.18 | \n",
+ "
\n",
+ " \n",
+ " | 1980 | \n",
+ " 35 | \n",
+ " 3.0 | \n",
+ " 8.57 | \n",
+ "
\n",
+ " \n",
+ " | 2009 | \n",
+ " 119 | \n",
+ " 10.0 | \n",
+ " 8.40 | \n",
+ "
\n",
+ " \n",
+ " | 1991 | \n",
+ " 39 | \n",
+ " 3.0 | \n",
+ " 7.69 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Total_Attacks | \n",
+ " Provoked_Fishing | \n",
+ " Percentage | \n",
+ "
\n",
+ " \n",
+ " | Year | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1972 | \n",
+ " 35 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1974 | \n",
+ " 39 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1968 | \n",
+ " 47 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1986 | \n",
+ " 39 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1997 | \n",
+ " 57 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2000 | \n",
+ " 97 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 1992 | \n",
+ " 56 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2026 | \n",
+ " 27 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2004 | \n",
+ " 91 | \n",
+ " 1.0 | \n",
+ " 1.10 | \n",
+ "
\n",
+ " \n",
+ " | 1995 | \n",
+ " 75 | \n",
+ " 1.0 | \n",
+ " 1.33 | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Country | \n",
+ " Provoked_Fishing_Attacks | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " united states | \n",
+ " 76 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " australia | \n",
+ " 56 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " south africa | \n",
+ " 33 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " mexico | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " new zealand | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " papua new guinea | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " united kingdom | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " bahamas | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " portugal | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " italy | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ "
\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/+sd955R5UqVVLevHn12muv6YMPPvgnu41HXEbrdcfHx9ts336r8ay4uLho37596fZ37tw53VQmAAAAAPgncJciPLLSVofmLkWPtuzcpQgAAAAAHgfcpQgAAAAAAOARRuACAAAAAABgMgIXAAAAAAAAkxG4AAAAAAAAmIzABQAAAAAAwGQELgAAAAAAACYjcAEAAAAAADAZgQsAAAAAAIDJCFwAAAAAAABMRuACAAAAAABgMgIXAAAAAAAAkxG4AAAAAAAAmIzABQAAAAAAwGQELgAAAAAAACYjcAEAAAAAADAZgQsAAAAAAIDJCFwAAAAAAABMRuACAAAAAABgMvucbgBwN28EB8jDwyOnmwEAAAAAQLYxwgUAAAAAAMBkBC4AAAAAAAAmI3ABAAAAAAAwGYELAAAAAACAyQhcAAAAAAAATEbgAgAAAAAAYDICFwAAAAAAAJMRuAAAAAAAAJiMwAUAAAAA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YkWb/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",
+ " Date | \n",
+ " Year | \n",
+ " Type | \n",
+ " Country | \n",
+ " Activity | \n",
+ " Sex | \n",
+ " Injury | \n",
+ " Fatal Y/N | \n",
+ " specie | \n",
+ " Date_parsed | \n",
+ " Date_Year | \n",
+ " Activity_Group | \n",
+ " Contains_Fatal | \n",
+ " shark_name | \n",
+ " Hemisphere | \n",
+ " Season | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 2026-01-01 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " australia | \n",
+ " spearfishing | \n",
+ " M | \n",
+ " Bite wounds to the head | \n",
+ " y | \n",
+ " Undetermined Bull shark most likely | \n",
+ " NaT | \n",
+ " 2026 | \n",
+ " Fishing | \n",
+ " False | \n",
+ " bull shark | \n",
+ " South | \n",
+ " Summer | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2026-01-01 | \n",
+ " 2026 | \n",
+ " Questionable | \n",
+ " united states | \n",
+ " surfing | \n",
+ " M | \n",
+ " Bite wound to the hand | \n",
+ " n | \n",
+ " Blue fish bite most probable | \n",
+ " NaT | \n",
+ " 2026 | \n",
+ " Surfing | \n",
+ " False | \n",
+ " unknown | \n",
+ " North | \n",
+ " Winter | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2026-01-01 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " australia | \n",
+ " skindiving | \n",
+ " M | \n",
+ " Severe injuries both legs | \n",
+ " y | \n",
+ " Great White Shark | \n",
+ " NaT | \n",
+ " 2026 | \n",
+ " Other | \n",
+ " False | \n",
+ " white shark | \n",
+ " South | \n",
+ " Summer | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 2026-01-01 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " maldives | \n",
+ " swimming | \n",
+ " M | \n",
+ " Leg strpped off flesh later amputated in hospital | \n",
+ " n | \n",
+ " Unknown | \n",
+ " NaT | \n",
+ " 2026 | \n",
+ " Swimming | \n",
+ " False | \n",
+ " unknown | \n",
+ " North | \n",
+ " Winter | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 2026-01-01 | \n",
+ " 2026 | \n",
+ " Unprovoked | \n",
+ " australia | \n",
+ " surfing | \n",
+ " M | \n",
+ " Bite wound to R ankle | \n",
+ " n | \n",
+ " Bronze Whaler | \n",
+ " NaT | \n",
+ " 2026 | \n",
+ " Surfing | \n",
+ " False | \n",
+ " unknown | \n",
+ " South | \n",
+ " Summer | \n",
+ "
\n",
+ " \n",
+ "
\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",
+ " Country | \n",
+ " Total_Attacks | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " angola | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " antigua and barbuda | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " argentina | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " aruba | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " australia | \n",
+ " 892 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 96 | \n",
+ " uruguay | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 97 | \n",
+ " vanuatu | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | 98 | \n",
+ " venezuela | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 99 | \n",
+ " vietnam | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 100 | \n",
+ " yemen | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ "
\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": "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b661a9dq6NChqlmzpvbs2aORI0dq8+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": "iVBORw0KGgoAAAANSUhEUgAAA+0AAAIhCAYAAAA7GltoAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYTNJREFUeJzt3XlYFeX///HXQRbZEUSQQkRF08A9zSVx37estKyPouYn00xc0lxyqzQtl8ytT5lbmS2albvlkmaaa+5mCmqJu4IoocL8/ujH+XYElKOHGOP5uK5zXc0998y85zQgr3PP3MdiGIYhAAAAAABgOk55XQAAAAAAAMgaoR0AAAAAAJMitAMAAAAAYFKEdgAAAAAATIrQDgAAAACASRHaAQAAAAAwKUI7AAAAAAAmRWgHAAAAAMCkCO0AAAAAAJgUoR0ATM5iseTotX79+lyvpXjx4lkeu0ePHjna/uTJk+rZs6dKly4td3d3+fv7KyoqSt27d9fJkyet/WJiYuTl5ZVbp5GJxWLRSy+9lCv7Xr9+vSwWi7788stc2X+GOXPmyGKxqGDBgjp+/Him9XXr1lVkZGSu1pCdf+o9cJT4+Hi1aNFC/v7+slgsio2NzbZvdj8TFotFycnJOT7mggULNHny5Huqu27duqpbt65d21SuXFkWi0XvvPOOXXVdu3ZNI0eOzPXfO/Hx8betDwDyA+e8LgAAcHs//fSTzfLrr7+udevWae3atTbt5cqV+0fqqVWrVqY/oIOCgu643e+//67KlSvLz89P/fv3V5kyZZSYmKgDBw7o888/17FjxxQaGppbZecbqampGjZsmObPn5/Xpdy3+vbtq61bt+qjjz5ScHCwihYtetv+Wf1MSJKHh0eOj7lgwQLt27fvth8QONru3bu1a9cuSdKsWbM0YMCAHNd17do1jRo1SpLs/qAAAGAfQjsAmNyjjz5qsxwYGCgnJ6dM7f8UPz+/uzr2Bx98oPPnz+vnn39WeHi4tb1t27YaMmSI0tPTHVlmjqSkpMjd3f0fP25uatq0qRYsWKABAwaoQoUKeV3OPyolJUUFCxaUxWK5p/3s27dP1apVU9u2bXPU/25/JvLahx9+KElq0aKFli1bps2bN6tmzZp5XBUA4FbcHg8A/wIXL15Uz5499cADD8jV1VUlSpTQ0KFDlZqaatMv4zbw999/X6VLl5abm5vKlSunhQsX5nqNFy5ckJOTk4oUKZLleienzP8k/fbbb2revLm8vLwUGhqq/v37ZzqnUaNGqXr16vL395ePj48qV66sWbNmyTAMm37FixdXy5YttXjxYlWqVEkFCxa0jhTeyjAMDRkyRC4uLvrggw8kSenp6XrjjTdUpkwZubu7y8/PT+XLl9e7776bo/P/888/1a9fPwUHB8vd3V3R0dHWUU5Jmj9/viwWS6Y7KyRp9OjRcnFx0alTp+54nIEDByogIECDBg26bb+M247nzJmTaZ3FYtHIkSOtyyNHjpTFYtGePXv01FNPydfXV/7+/urXr59u3rypw4cPq2nTpvL29lbx4sU1fvz4u3oPMmzfvl2tW7eWv7+/ChYsqEqVKunzzz+36ZPxOMDq1avVtWtXBQYGysPDI9P18XcnTpzQc889pyJFisjNzU1ly5bVhAkTrB8YZdzG/9tvv2nFihXW29zj4+Nv+17ezrRp01SnTh0VKVJEnp6eioqK0vjx43Xjxg1rn7p162rZsmU6fvy4ze31GXJ6jdvjzz//1IIFC1SlShVNmjRJkvTRRx/Z9Mmurvj4eAUGBlpry2iPiYmR9NfPbZcuXRQRESEPDw898MADatWqlfbu3ZupjsuXL6t///4qUaKE3NzcVKRIETVv3lyHDh3KtvYbN26oc+fO8vLy0tKlSyX9NfI/YMAAhYeHq2DBgvL391fVqlX16aef3vV7BABmwUg7ANzn/vzzT9WrV09Hjx7VqFGjVL58eW3cuFFjx47V7t27tWzZMpv+33zzjdatW6fRo0fL09NT06dP1zPPPCNnZ2c9+eSTdzzeDz/8IG9vb/3555+KiIhQt27dFBsbqwIFCtx2uxo1amjatGlq166d+vXrpxo1asjHxyfb/jdu3FDr1q3VrVs39e/fXz/88INef/11+fr6avjw4dZ+8fHxeuGFF1SsWDFJ0pYtW9S7d2/98ccfNv0kaefOnTp48KCGDRum8PBweXp6ZjpuamqqYmJitGzZMn377bdq2rSpJGn8+PEaOXKkhg0bpjp16ujGjRs6dOiQLl++fMf3TJKGDBmiypUr68MPP1RiYqJGjhypunXrateuXSpRooQ6dOiggQMHatq0aapRo4Z1u5s3b+r999/X448/rpCQkDsex9vbW8OGDVOfPn20du1a1a9fP0f15UT79u313HPP6YUXXtCaNWus4fO7775Tz549NWDAAC1YsECDBg1SqVKl1K5dO7veA0lat26dmjZtqurVq2vmzJny9fXVwoUL1aFDB127ds0aDDN07dpVLVq00Pz583X16lW5uLhkWfu5c+dUs2ZNXb9+Xa+//rqKFy+upUuXasCAATp69KimT5+uypUr66efftLjjz+ukiVLWm95v9Pt8YZh6ObNmzZtTk5OcnJy0tGjR9WxY0eFh4fL1dVVv/zyi958800dOnTIGpKnT5+u//73vzp69Ki++uqrTPu35xrPqcWLF+vSpUvq2rWrIiIiVLt2bX322WeaPHmydT6J7OoqWrSoVq5cqaZNm6pbt256/vnnJcka5E+dOqWAgAC99dZbCgwM1MWLFzV37lxVr15du3btUpkyZSRJV65cUe3atRUfH69BgwapevXqSk5O1g8//KCEhAQ99NBDmeq+fPmy2rVrp4MHD2rDhg2qUqWKJKlfv36aP3++3njjDVWqVElXr17Vvn37dOHChbt6fwDAVAwAwH2lc+fOhqenp3V55syZhiTj888/t+k3btw4Q5KxevVqa5skw93d3Th9+rS17ebNm8ZDDz1klCpV6o7H7tmzp/HRRx8ZGzZsMJYsWWI8++yzhiTjueeeu+O26enpxgsvvGA4OTkZkgyLxWKULVvW6Nu3rxEXF5fpHLM6p+bNmxtlypTJ9hhpaWnGjRs3jNGjRxsBAQFGenq6dV1YWJhRoEAB4/Dhw5m2k2T06tXLuHDhglG7dm3jgQceMHbv3m3Tp2XLlkbFihXveJ63WrdunSHJqFy5sk098fHxhouLi/H8889b20aMGGG4uroaZ86csbZ99tlnhiRjw4YNtz3O7NmzDUnGtm3bjNTUVKNEiRJG1apVrceMjo42Hn74YWv/uLg4Q5Ixe/bsTPuSZIwYMcKmLknGhAkTbPpVrFjRkGQsXrzY2nbjxg0jMDDQaNeu3V29Bw899JBRqVIl48aNGzbHatmypVG0aFEjLS3N5nw7dep02/clw6uvvmpIMrZu3WrT/uKLLxoWi8XmuggLCzNatGiRo/2GhYUZkjK9hg4dmqlvxvU5b948o0CBAsbFixet61q0aGGEhYXd8Xi3u8ajo6ON6OjoHNVdv359o2DBgsalS5cMw/i/93PWrFk2/bKr69y5c5muk+zcvHnTuH79uhEREWH07dvX2j569GhDkrFmzZpst824Tt9++20jLi7OKFeunFGuXDkjPj7epl9kZKTRtm3bO9YCAPcjbo8HgPvc2rVr5enpmWmUPGNE8vvvv7dpb9Cggc3EcQUKFFCHDh3022+/6ffff7/tsaZNm6YuXbqoTp06atOmjT7++GO99NJL+vjjj7O8zfnvLBaLZs6cqWPHjmn69Onq0qWLbty4oUmTJunhhx/Whg0bMvVv1aqVTVv58uUzzYy+du1aNWzYUL6+vipQoIBcXFw0fPhwXbhwQWfPns20fenSpbOsLy4uTjVq1FBSUpK2bNmS6XnwatWq6ZdfflHPnj21atUqJSUl3fZ8b9WxY0ebW57DwsJUs2ZNrVu3ztr24osvSpL1lnxJmjp1qqKiolSnTp0cH8vV1VVvvPGGtm/fnum28nvRsmVLm+WyZcvKYrGoWbNm1jZnZ2eVKlUqyxns7/Qe/Pbbbzp06JCeffZZSX/dZZDxat68uRISEnT48GGbfT7xxBM5qn3t2rUqV66cqlWrZtMeExMjwzAyTexoj9q1a2vbtm02r549e0qSdu3apdatWysgIMB6fXbq1ElpaWn69ddfc1x7Tq/xnIiLi9O6devUrl07+fn5SZKeeuopeXt7Z7pF/m7cvHlTY8aMUbly5eTq6ipnZ2e5urrqyJEjOnjwoLXfihUrVLp0aTVs2PCO+9y5c6ceffRRBQUF6ccff1RYWJjN+mrVqmnFihV69dVXtX79eqWkpNzzeQCAWRDaAeA+d+HCBQUHB2eafKtIkSJydnbOdHtocHBwpn1ktN3NraTPPfecpL9u2c2JsLAwvfjii5o1a5aOHDmizz77TH/++adeeeUVm34eHh4qWLCgTZubm5v+/PNP6/LPP/+sxo0bS/or6P7444/atm2bhg4dKkmZ/nC/3W3OP//8s3799Vd16NBBDz74YKb1gwcP1jvvvKMtW7aoWbNmCggIUIMGDbR9+/YcnXd27/vf3/OgoCB16NBB77//vtLS0rRnzx5t3Ljxrr6O7umnn1blypU1dOhQm+en74W/v7/Nsqura5b/n1xdXW3+P2W403tw5swZSdKAAQPk4uJi88oIwefPn7fZ/k63rme4cOFCln0zHjm4l9uofX19VbVqVZtXSEiITpw4occee0x//PGH3n33XW3cuFHbtm3TtGnTJGW+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
+}