Exploratory Data Analysis in Python | Set 1



To get a link to the csv file you are using, click here .

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 top 10 posts

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

 
< code class = "comments"> # Print the last 10 entries

print ( "Tail -" , data.tail ( 10 ))

Output:

 Type: class `pandas.core.frame.DataFrame`  Head -  State Population Murder.Rate Abbreviation 0 Alabama 4779736 5.7 AL 1 Alaska 710231 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 

Code # 1: Add Column to Data Frame

# Add a new derived data column

  

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

 
# Changed data

print (data.head ( 5 ))

Output:

 State Population Murder.Rate Abbreviation PopulationInMillions 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 Arkansas 2915918 5.6 AR 2.915918 4 California 37253956 4.4 CA 37.253956 

Code

: Data Description

data.describe ()

Output:

Code # 3: Data Information

data.info ()

Output:

 RangeIndex: 50 entries, 0 to 49 Data columns (tota l 4 columns): State 50 non-null object Population 50 non-null int64 Murder.Rate 50 non-null float64 Abbreviation 50 non-null object dtypes: float64 (1), int64 (1), object (2) memory usage: 1.6+ KB 

Code # 4: renaming a column header

# 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)

Exit:

 [`State`,` Population`, `MurderRate`,` Abbreviation`] 

Code # 5: Average calculation

Population_mean = data.Population.mean ()

print ( "Population Mean:" , Population_mean)

  

MurderRate_mean = data.MurderRate.mean ()

print ( "MurderRate Mean:" , MurderRate_mean)

Exit:

 Population Mean: 6162876.3 MurderRate Mean: 4.066 

Code # 6: Truncated Average

# Average after reset top and
# bottom 10% non-outliers

 

population_TM = trim_mean (data.Population, 0.1 )

print ( "Population trimmed mean:" , population_TM)

  

murder_TM = trim_mean (data.MurderRate, 0.1 )

print ( "MurderRate trimmed mean:" , murder_TM)

Output:

 Population trimmed mean: 4783697.125 Murde rRate trimmed mean: 3.9450000000000003 

Code # 7: weighted average

# here the kill rate is weighted according to
# public population

 

murderRate_WM = np.average (data.MurderRate, weights = data.Population)

print ( " Weighted MurderRate Mean: " , murderRate_WM)

Output:

 Weighted MurderRate Mean: 4.445833981123393 

Code # 8: Median

Population_median = data.Population.median ()

print ( "Population median:" , Population_median)

  

MurderRate_median = data .MurderRate.median ()

print ( "MurderRate median:" , MurderRate_median)

Output:

 Population median: 4436369.5 MurderRate median: 4.0