<jupyter_start><jupyter_text>Exploratory data analysis (EDA)Exploratory data analysis is an approach of analyzing data sets to summarize their main characteristics, often using statistical graphics and other data visualization methods. A statistical model can be used or not, but primarily EDA is for seeing what the data can tell us beyond the formal modeling or hypothesis testing task.  Importing scripts folder<jupyter_code>import os
import sys
sys.path.append(os.path.abspath(os.path.join('../scripts')))<jupyter_output><empty_output><jupyter_text>Loading Libraries we will use in the project<jupyter_code>import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
sns.set()<jupyter_output><empty_output><jupyter_text>Importing scripts & modules<jupyter_code>from helper import MyHelper
import utility
import plots<jupyter_output><empty_output><jupyter_text>Loading the data<jupyter_code>CSV_PATH = "../data/data.csv"
# the class has utility function we are going to use
Helper = MyHelper()
# we use our helper function to read csv data
# we treate values like 'n/a', 'na', 'undefined' as missing values

df = Helper.read_csv(CSV_PATH)
df.head()<jupyter_output><empty_output><jupyter_text>Exploring the data  Getting the basic info about the dataset<jupyter_code>df.info()<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 569 entries, 0 to 568
Data columns (total 33 columns):
 #   Column                   Non-Null Count  Dtype  
---  ------                   --------------  -----  
 0   id                       569 non-null    int64  
 1   diagnosis                569 non-null    object 
 2   radius_mean              569 non-null    float64
 3   texture_mean             569 non-null    float64
 4   perimeter_mean           569 non-null    float64
 5   area_mean                569 non-null    float64
 6   smoothness_mean          569 non-null    float64
 7   compactness_mean         569 non-null    float64
 8   concavity_mean           569 non-null    float64
 9   concave points_mean      569 non-null    float64
 10  symmetry_mean            569 non-null    float64
 11  fractal_dimension_mean   569 non-null    float64
 12  radius_se                569 non-null    float64
 13  texture_se               569 non-null    float64
 14  perimeter_se             5[...]<jupyter_text>Getting the basic description of the dataset<jupyter_code>df.describe()
print(f" There are {df.shape[0]} rows and {df.shape[1]} columns")<jupyter_output>There are 569 rows and 33 columns<jupyter_text>Checking for duplicates<jupyter_code>df.duplicated()
#Droping if there is any duplicates in the dataset
df.drop_duplicates()<jupyter_output><empty_output><jupyter_text>Checking the null counts<jupyter_code>df.isnull().sum()<jupyter_output><empty_output><jupyter_text>Checking for missing values<jupyter_code>#The percent_missing function checkes any missing values and convert it into percentage 

utility.percent_missing(df)<jupyter_output>The dataset contains 3.03 % missing values.