Exploratory Data Analysis in Python | Set 2



Let`s take a look at the main methods —

# Loading libraries

 

import numpy as np

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

from scipy.stats import trim_mean

 
# Loading data

data = pd.read_csv ( "state.csv" )

 
# Check the data type

print ( "Type:" , type (data), " " )

  
# Print the top 10 posts

print ( "Head -" , data.head ( 10 ))

 
# Print last 10 posts

print ( "Tail -" , data.tail ( 1 0 ))

 
# Add a new derived data column

data [ `PopulationInMillions` ] = data [ `Population` ] / 1000000

 
# Modified data

print (data.head ( 5 ))

 
# Rename the column header as it is
# has & # 39;. & # 39; in it, which will create
# problems when working with functions

  

data.rename (columns = { `Murder.Rate` : ` MurderRate` },

inplace = True )

 
# Let`s check the column headings

list (data)

Output:

 Type: class `pandas.core.frame.DataFrame`  Head -  State Population Murder.Rate Abbreviation 0 Alabama 4779736 5.7 AL 1 Alaska 71023 1 5.6 AK 2 Arizona 6392017 4.7 AZ 3 Arkansas 2915918 5.6 AR 4 California 37253956 4.4 CA 5 Colorado 5029196 2.8 CO 6 Connecticut 3574097 2.4 CT 7 Delaware 897934 5.8 DE 8 Florida 18801310 5.8 FL 9 Georgia 9687653 5.7 GA  Tail -  State Population Murder.Rate Abbreviation 40 South Dakota 814180 2.3 SD 41 Tennessee 6346105 5.7 TN 42 Texas 25145561 4.4 TX 43 Utah 2763885 2.3 UT 44 Vermont 625741 1.6 VT 45 Virginia 8001024 4.1 VA 46 Washington 6724540 2.5 WA 47 West Virginia 1852994 4.0 WV 48 Wisconsin 5686986 2.9 WI 49 Wyoming 563626 2.7 WY State Population Murder.Rate Abbreviation Population InMillions 0 Alabama 4779736 5.7 AL 4.779736 1 Alaska 710231 5.6 AK 0.710231 2 Arizona 6392017 4.7 AZ 6.392017 3 4.4 California 2.915395618 5.6 `` AR State`, `Population`,` MurderRate`, `Abbreviation`] 

Visualization of population per million

# Population of the site in millions

fig, ax1 = plt.subplots ()

fig.set_size_inches ( 15 9 )

 

 

ax1 = sns.barplot (x = "State" , y = "Population"

data = data.sort_values ​​( ` MurderRate` ), 

  palette = "Set2" )

 

ax1. set (xlabel = `States` , ylabel = ` Population In Millions` )

ax1.set_title ( `Population in Millions by State` , size = 20 )

 

plt .xticks (rotation = - 90 )

Exit:

 (array ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]), a list of 50 Text xticklabel objects) 

Visualization of the kill rate per varnish

# Number of kills per 1, 00, 000

 

fig, ax2 = plt.subplots ()

fig.set_size_inches ( 15 9 )

 

  

ax2 = sns.barplot (

  x = " State " , y = "MurderRate"

data = data.sort_values ​​( `MurderRate` , ascending = 1 ), 

  palette = "husl" )

 

ax2. set (xlabel = `States` , ylabel = `Murder Rate per 100000` )

ax2.set_title ( `Murder Rate by State` , size = 20 )

 

plt.xticks (rotation = - 90 )

Output:

 (array ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]) , a list of 50 Text xticklabel objects) 


Although Louisiana is 17th most populated (about 4.53 million), it has the highest murder rate of 10.3 per million people.

Code # 1: standard deviation

Population_std = data.Population.std ()

print ( "Population std:" , Population_std)

 

MurderRate_std = data.MurderRate.std ()

print ( "MurderRat e std: " , MurderRate_std)

Output:

 Population std: 6848235.347401142 MurderRate std: 1.915736124302923 

Code # 2: Dispersion

Population_var = data.Population.var ( )

print ( "Population var: " , Population_var)

  

MurderRate_var = data.MurderRate.var ()

print ( "MurderRate var:" , MurderRate_var)

Output:

 Population var: 46898327373394.445 MurderRate var : 3.670044897959184 

Code # 3: Interquartile range

# Population interquartile range

population_IQR = data.Population.describe () [ `75%` ] -  

data.Population.describe () [ `25%` ]

 

print ( "Population IQR:" , population_IRQ) ​​

  
# Interquartile range of murders

MurderRate_IQR = data.MurderRate.describe () [ `75%` ] -  

data.MurderRate.describe () [ `25%` ]

 

print ( " MurderRate IQR: " , MurderRate_IQR)

Output:

 Population IQR: 4847308.0 MurderRate IQR: 3.124999999999999 

Code # 4: Median absolute deviation (MAD)

Population_mad = data .Population.mad ()

print ( "Population mad:" , Population_mad)

 

MurderRate_mad = data.MurderRate.mad ()

print ( "MurderRate mad:" , MurderRate_mad)

Exit :

 Population mad: 4450933.356000001 MurderRate mad: 1.5526400000000005