Project - 2
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df1 = pd.read_csv(r"C:\Users\laksh\Downloads\customer_details.csv")
df1
0 1 2 3 4 5 6 7
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
... ... ... ... ... ... ... ... ...
381104 381105.0 Male 74.0 1.0 26.0 1.0 1-2 Year No
381105 381106.0 Male 30.0 1.0 37.0 1.0 < 1 Year No
381106 381107.0 Male 21.0 1.0 30.0 1.0 < 1 Year No
381107 381108.0 Female 68.0 1.0 14.0 0.0 > 2 Years Yes
381108 381109.0 Male 46.0 1.0 29.0 0.0 1-2 Year No
381109 rows × 8 columns
df1.columns = ['customer_id', 'Gender','age', 'driving licence','region code', 'previously-Insured', 'vehicle-age', 'vehicle-damage']
df1.head()
df1.columns = ['customer_id', 'Gender','age', 'driving licence','region code', 'previously-Insured', 'vehicle-age', 'vehicle-damage']
df1.head()
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
df2 = pd.read_csv(r"C:\Users\laksh\Downloads\customer_policy_details.csv")
df2
0 1 2 3 4
0 1.0 40454.0 26.0 217.0 1.0
1 2.0 33536.0 26.0 183.0 0.0
2 3.0 38294.0 26.0 27.0 1.0
3 4.0 28619.0 152.0 203.0 0.0
4 5.0 27496.0 152.0 39.0 0.0
... ... ... ... ... ...
381104 381105.0 30170.0 26.0 88.0 0.0
381105 381106.0 40016.0 152.0 131.0 0.0
381106 381107.0 35118.0 160.0 161.0 0.0
381107 381108.0 44617.0 124.0 74.0 0.0
381108 381109.0 41777.0 26.0 237.0 0.0
381109 rows × 5 columns
df2.columns = ['customer_id', 'annual premium (in Rs)', 'saleschannel-code', 'vintage','response']
df2.head()
customer_id annual premium (in Rs) saleschannel-code vintage response
0 1.0 40454.0 26.0 217.0 1.0
1 2.0 33536.0 26.0 183.0 0.0
2 3.0 38294.0 26.0 27.0 1.0
3 4.0 28619.0 152.0 203.0 0.0
4 5.0 27496.0 152.0 39.0 0.0
df1_null = df1.isnull().sum()
df1_null
customer_id 386
Gender 368
age 368
driving licence 393
region code 392
previously-Insured 381
vehicle-age 381
vehicle-damage 407
dtype: int64
df1_null =
df1_null = df1.isnull()
for i in df1_null.columns.values.tolist():
print(i)
print(df1_null[i].value_counts())
print("")
customer_id
False 380723
True 386
Name: customer_id, dtype: int64
Gender
False 380741
True 368
Name: Gender, dtype: int64
age
False 380741
True 368
Name: age, dtype: int64
driving licence
False 380716
True 393
Name: driving licence, dtype: int64
region code
False 380717
True 392
Name: region code, dtype: int64
previously-Insured
False 380728
True 381
Name: previously-Insured, dtype: int64
vehicle-age
False 380728
True 381
Name: vehicle-age, dtype: int64
vehicle-damage
False 380702
True 407
Name: vehicle-damage, dtype: int64
df2_null = df2.isnull().sum()
df2_null
customer_id 387
annual premium (in Rs) 346
saleschannel-code 400
vintage 388
response 361
dtype: int64
df2_null = df2.isnull()
for i in df2_null.columns:
print(i)
print(df2_null[i].value_counts())
print("")
customer_id
False 380722
True 387
Name: customer_id, dtype: int64
annual premium (in Rs)
False 380763
True 346
Name: annual premium (in Rs), dtype: int64
saleschannel-code
False 380709
True 400
Name: saleschannel-code, dtype: int64
vintage
False 380721
True 388
Name: vintage, dtype: int64
response
False 380748
True 361
Name: response, dtype: int64
df1.dropna(subset = 'customer_id',axis = 0)
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
... ... ... ... ... ... ... ... ...
381104 381105.0 Male 74.0 1.0 26.0 1.0 1-2 Year No
381105 381106.0 Male 30.0 1.0 37.0 1.0 < 1 Year No
381106 381107.0 Male 21.0 1.0 30.0 1.0 < 1 Year No
381107 381108.0 Female 68.0 1.0 14.0 0.0 > 2 Years Yes
381108 381109.0 Male 46.0 1.0 29.0 0.0 1-2 Year No
380723 rows × 8 columns
df2.dropna(subset = 'customer_id',axis = 0)
customer_id annual premium (in Rs) saleschannel-code vintage response
0 1.0 40454.0 26.0 217.0 1.0
1 2.0 33536.0 26.0 183.0 0.0
2 3.0 38294.0 26.0 27.0 1.0
3 4.0 28619.0 152.0 203.0 0.0
4 5.0 27496.0 152.0 39.0 0.0
... ... ... ... ... ...
381104 381105.0 30170.0 26.0 88.0 0.0
381105 381106.0 40016.0 152.0 131.0 0.0
381106 381107.0 35118.0 160.0 161.0 0.0
381107 381108.0 44617.0 124.0 74.0 0.0
381108 381109.0 41777.0 26.0 237.0 0.0
380722 rows × 5 columns
df1.reset_index(drop = True, inplace = True)
df2.reset_index(drop = True, inplace = True)
df1.head()
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
df1['age'].fillna(df1['age'].mean())
0 44.0
1 76.0
2 47.0
3 21.0
4 29.0
...
381104 74.0
381105 30.0
381106 21.0
381107 68.0
381108 46.0
Name: age, Length: 381109, dtype: float64
df1['driving licence'].fillna(df1['driving licence'].mean())
df1['driving licence'].fillna(df1['driving licence'].mean())
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
...
381104 1.0
381105 1.0
381106 1.0
381107 1.0
381108 1.0
Name: driving licence, Length: 381109, dtype: float64
df1['region code'].fillna(df1['region code'].mean())
0 28.0
1 3.0
2 28.0
3 11.0
4 41.0
...
381104 26.0
381105 37.0
381106 30.0
381107 14.0
381108 29.0
Name: region code, Length: 381109, dtype: float64
df1['previously-Insured'].fillna(df1['previously-Insured'].mean())
0 0.0
1 0.0
2 0.0
3 1.0
4 1.0
...
381104 1.0
381105 1.0
381106 1.0
381107 0.0
381108 0.0
Name: previously-Insured, Length: 381109, dtype: float64
df1['age'].fillna(df1['age'].mode())
0 44.0
1 76.0
2 47.0
3 21.0
4 29.0
...
381104 74.0
381105 30.0
381106 21.0
381107 68.0
381108 46.0
Name: age, Length: 381109, dtype: float64
df1['driving licence'].fillna(df1['driving licence'].mode())
df1['driving licence'].fillna(df1['driving licence'].mode())
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
...
381104 1.0
381105 1.0
381106 1.0
381107 1.0
381108 1.0
Name: driving licence, Length: 381109, dtype: float64
df1['region code'].fillna(df1['region code'].mode())
df1['region code'].fillna(df1['region code'].mode())
0 28.0
1 3.0
2 28.0
3 11.0
4 41.0
...
381104 26.0
381105 37.0
381106 30.0
381107 14.0
381108 29.0
Name: region code, Length: 381109, dtype: float64
df1['previously-Insured'].fillna(df1['previously-Insured'].mode())
0 0.0
1 0.0
2 0.0
3 1.0
4 1.0
...
381104 1.0
381105 1.0
381106 1.0
381107 0.0
381108 0.0
Name: previously-Insured, Length: 381109, dtype: float64
df1.head()
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
df2['annual premium (in Rs)'].fillna(df2['annual premium (in Rs)'].mean())
0 40454.0
1 33536.0
2 38294.0
3 28619.0
4 27496.0
...
381104 30170.0
381105 40016.0
381106 35118.0
381107 44617.0
381108 41777.0
Name: annual premium (in Rs), Length: 381109, dtype: float64
df2['saleschannel-code'].fillna(df2['saleschannel-code'].mean())
0 26.0
1 26.0
2 26.0
3 152.0
4 152.0
...
381104 26.0
381105 152.0
381106 160.0
381107 124.0
381108 26.0
Name: saleschannel-code, Length: 381109, dtype: float64
df2['vintage'].fillna(df2['vintage'].mean())
0 217.0
1 183.0
2 27.0
3 203.0
4 39.0
...
381104 88.0
381105 131.0
381106 161.0
381107 74.0
381108 237.0
Name: vintage, Length: 381109, dtype: float64
df2['response'].fillna(df2['response'].mean())
0 1.0
1 0.0
2 1.0
3 0.0
4 0.0
...
381104 0.0
381105 0.0
381106 0.0
381107 0.0
381108 0.0
Name: response, Length: 381109, dtype: float64
df2['annual premium (in Rs)'].fillna(df2['annual premium (in Rs)'].mode())
df2['annual premium (in Rs)'].fillna(df2['annual premium (in Rs)'].mode())
0 40454.0
1 33536.0
2 38294.0
3 28619.0
4 27496.0
...
381104 30170.0
381105 40016.0
381106 35118.0
381107 44617.0
381108 41777.0
Name: annual premium (in Rs), Length: 381109, dtype: float64
df2['saleschannel-code'].fillna(df2['saleschannel-code'].mode())
df2['saleschannel-code'].fillna(df2['saleschannel-code'].mode())
0 26.0
1 26.0
2 26.0
3 152.0
4 152.0
...
381104 26.0
381105 152.0
381106 160.0
381107 124.0
381108 26.0
Name: saleschannel-code, Length: 381109, dtype: float64
df2['vintage'].fillna(df2['vintage'].mode())
df2['vintage'].fillna(df2['vintage'].mode())
0 217.0
1 183.0
2 27.0
3 203.0
4 39.0
...
381104 88.0
381105 131.0
381106 161.0
381107 74.0
381108 237.0
Name: vintage, Length: 381109, dtype: float64
df2['response'].fillna(df2['response'].mode())
df2['response'].fillna(df2['response'].mode())
0 1.0
1 0.0
2 1.0
3 0.0
4 0.0
...
381104 0.0
381105 0.0
381106 0.0
381107 0.0
381108 0.0
Name: response, Length: 381109, dtype: float64
def find_outliers(df):
q1 = df.quantile(0.25)
q3 = df.quantile(0.75)
iqr = q3-q1
outlier = df[((df<(q1-1.5*iqr)) | (df>(q3+1.5*iqr)))]
return outlier
outliers = find_outliers(df1['age'])
print('No. of outliers :',len(outliers))
print('The Maximum value of outlier :',outliers.max())
print('The Minimum value of outlier:',outliers.min())
No. of outliers : 0
The Maximum value of outlier : nan
The Minimum value of outlier: nan
outliers = find_outliers(df1['region code'])
print('No. of outliers :',len(outliers))
print('The Maximum value of outlier :',outliers.max())
print('The Minimum value of outlier:',outliers.min())
No. of outliers : 0
The Maximum value of outlier : nan
The Minimum value of outlier: nan
outliers = find_outliers(df2['annual premium (in Rs)'])
print('No. of outliers :',len(outliers))
print('The Maximum value of outlier :',outliers.max())
print('The Minimum value of outlier:',outliers.min())
No. of outliers : 10308
The Maximum value of outlier : 540165.0
The Minimum value of outlier: 61892.0
outliers = find_outliers(df2['saleschannel-code'])
print('No. of outliers :',len(outliers))
print('The Maximum value of outlier :',outliers.max())
print('The Minimum value of outlier:',outliers.min())
No. of outliers : 0
The Maximum value of outlier : nan
The Minimum value of outlier: nan
outliers = find_outliers(df2['vintage'])
print('No. of outliers :',len(outliers))
print('The Maximum value of outlier :',outliers.max())
print('The Minimum value of outlier:',outliers.min())
No. of outliers : 0
The Maximum value of outlier : nan
The Minimum value of outlier: nan
def replace_outlier(df):
q1 = df.quantile(0.25)
q3 = df.quantile(0.75)
iqr = q3-q1
upper = df[~(df>(q3+1.5*iqr))].max()
lower = df[~(df<(q1-1.5*iqr))].min()
df = np.where(df>upper,df.mean(),np.where(df<lower,df.mean(),df))
return df
df2['annual premium (in Rs)'] = replace_outlier(df2['annual premium (in Rs)'])
df1.apply(lambda x: x.str.strip() if x.dtype=='object' else x)
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
... ... ... ... ... ... ... ... ...
381104 381105.0 Male 74.0 1.0 26.0 1.0 1-2 Year No
381105 381106.0 Male 30.0 1.0 37.0 1.0 < 1 Year No
381106 381107.0 Male 21.0 1.0 30.0 1.0 < 1 Year No
381107 381108.0 Female 68.0 1.0 14.0 0.0 > 2 Years Yes
381108 381109.0 Male 46.0 1.0 29.0 0.0 1-2 Year No
381109 rows × 8 columns
df1.apply(lambda x: x.str.upper() if x.dtype=='object' else x)
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 MALE 44.0 1.0 28.0 0.0 > 2 YEARS YES
1 2.0 MALE 76.0 1.0 3.0 0.0 1-2 YEAR NO
2 3.0 MALE 47.0 1.0 28.0 0.0 > 2 YEARS YES
3 4.0 MALE 21.0 1.0 11.0 1.0 < 1 YEAR NO
4 5.0 FEMALE 29.0 1.0 41.0 1.0 < 1 YEAR NO
... ... ... ... ... ... ... ... ...
381104 381105.0 MALE 74.0 1.0 26.0 1.0 1-2 YEAR NO
381105 381106.0 MALE 30.0 1.0 37.0 1.0 < 1 YEAR NO
381106 381107.0 MALE 21.0 1.0 30.0 1.0 < 1 YEAR NO
381107 381108.0 FEMALE 68.0 1.0 14.0 0.0 > 2 YEARS YES
381108 381109.0 MALE 46.0 1.0 29.0 0.0 1-2 YEAR NO
381109 rows × 8 columns
df1.apply(lambda x: x.str.lower() if x.dtype=='object' else x)
df1.apply(lambda x: x.str.lower() if x.dtype=='object' else x)
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 male 44.0 1.0 28.0 0.0 > 2 years yes
1 2.0 male 76.0 1.0 3.0 0.0 1-2 year no
2 3.0 male 47.0 1.0 28.0 0.0 > 2 years yes
3 4.0 male 21.0 1.0 11.0 1.0 < 1 year no
4 5.0 female 29.0 1.0 41.0 1.0 < 1 year no
... ... ... ... ... ... ... ... ...
381104 381105.0 male 74.0 1.0 26.0 1.0 1-2 year no
381105 381106.0 male 30.0 1.0 37.0 1.0 < 1 year no
381106 381107.0 male 21.0 1.0 30.0 1.0 < 1 year no
381107 381108.0 female 68.0 1.0 14.0 0.0 > 2 years yes
381108 381109.0 male 46.0 1.0 29.0 0.0 1-2 year no
381109 rows × 8 columns
dummy = pd.get_dummies(df1)
dummy.head()
customer_id age driving licence region code previously-Insured Gender_Female Gender_Male vehicle-age_1-2 Year vehicle-age_< 1 Year vehicle-age_> 2 Years vehicle-damage_No vehicle-damage_Yes
0 1.0 44.0 1.0 28.0 0.0 0 1 0 0 1 0 1
1 2.0 76.0 1.0 3.0 0.0 0 1 1 0 0 1 0
2 3.0 47.0 1.0 28.0 0.0 0 1 0 0 1 0 1
3 4.0 21.0 1.0 11.0 1.0 0 1 0 1 0 1 0
4 5.0 29.0 1.0 41.0 1.0 1 0 0 1 0 1 0
dummy = pd.get_dummies(df2)
dummy.head()
customer_id annual premium (in Rs) saleschannel-code vintage response
0 1.0 40454.0 26.0 217.0 1.0
1 2.0 33536.0 26.0 183.0 0.0
2 3.0 38294.0 26.0 27.0 1.0
3 4.0 28619.0 152.0 203.0 0.0
4 5.0 27496.0 152.0 39.0 0.0
df1
df1
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No
... ... ... ... ... ... ... ... ...
381104 381105.0 Male 74.0 1.0 26.0 1.0 1-2 Year No
381105 381106.0 Male 30.0 1.0 37.0 1.0 < 1 Year No
381106 381107.0 Male 21.0 1.0 30.0 1.0 < 1 Year No
381107 381108.0 Female 68.0 1.0 14.0 0.0 > 2 Years Yes
381108 381109.0 Male 46.0 1.0 29.0 0.0 1-2 Year No
381109 rows × 8 columns
master_table = pd.merge(df1,df2, on = 'customer_id')
master_table
customer_id Gender age driving licence region code previously-Insured vehicle-age vehicle-damage annual premium (in Rs) saleschannel-code vintage response
0 1.0 Male 44.0 1.0 28.0 0.0 > 2 Years Yes 40454.0 26.0 217.0 1.0
1 2.0 Male 76.0 1.0 3.0 0.0 1-2 Year No 33536.0 26.0 183.0 0.0
2 3.0 Male 47.0 1.0 28.0 0.0 > 2 Years Yes 38294.0 26.0 27.0 1.0
3 4.0 Male 21.0 1.0 11.0 1.0 < 1 Year No 28619.0 152.0 203.0 0.0
4 5.0 Female 29.0 1.0 41.0 1.0 < 1 Year No 27496.0 152.0 39.0 0.0
... ... ... ... ... ... ... ... ... ... ... ... ...
529713 381105.0 Male 74.0 1.0 26.0 1.0 1-2 Year No 30170.0 26.0 88.0 0.0
529714 381106.0 Male 30.0 1.0 37.0 1.0 < 1 Year No 40016.0 152.0 131.0 0.0
529715 381107.0 Male 21.0 1.0 30.0 1.0 < 1 Year No 35118.0 160.0 161.0 0.0
529716 381108.0 Female 68.0 1.0 14.0 0.0 > 2 Years Yes 44617.0 124.0 74.0 0.0
529717 381109.0 Male 46.0 1.0 29.0 0.0 1-2 Year No 41777.0 26.0 237.0 0.0
529718 rows × 12 columns
Gender_wise = master_table.groupby(['Gender']).mean()['annual premium (in Rs)']
Gender_wise
Gender
Female 29138.606044
Male 29173.152297
Name: annual premium (in Rs), dtype: float64
er_table
age_wise = master_table.groupby(['age']).mean()['annual premium (in Rs)']
age_wise
age
20.0 26917.306729
21.0 29465.148383
22.0 29552.815873
23.0 29605.959154
24.0 29703.813044
...
81.0 29287.894657
82.0 36480.575871
83.0 28995.804558
84.0 35440.818182
85.0 26637.427298
Name: annual premium (in Rs), Length: 66, dtype: float64
le
master_table.groupby(['Gender']).sum()['age']
Gender
Female 8807295.0
Male 11705141.0
Name: age, dtype: float64
er_table
master_table.groupby(['age']).sum()
customer_id driving licence region code previously-Insured annual premium (in Rs) saleschannel-code vintage response
age
20.0 1.189134e+09 8143.0 202156.0 4421.0 2.189454e+08 1191384.0 1248382.0 440.0
21.0 3.107672e+09 23361.0 602384.0 13309.0 6.874514e+08 3300419.0 3586184.0 1542.0
22.0 3.974140e+09 31708.0 837665.0 19638.0 9.355239e+08 4307725.0 4861014.0 2272.0
23.0 4.638462e+09 31136.0 776270.0 21268.0 9.209822e+08 4266878.0 4759723.0 1861.0
24.0 4.939661e+09 37858.0 890551.0 25262.0 1.122745e+09 5182246.0 5787723.0 2585.0
... ... ... ... ... ... ... ... ...
81.0 9.987562e+06 50.0 1807.0 28.0 1.640122e+06 3383.0 9662.0 4.0
82.0 6.639331e+06 26.0 777.0 14.0 1.057937e+06 1767.0 4723.0 1.0
83.0 4.073258e+06 21.0 607.0 14.0 6.379077e+05 1531.0 3510.0 1.0
84.0 1.553087e+06 10.0 317.0 9.0 3.898490e+05 563.0 1525.0 0.0
85.0 1.910183e+06 10.0 327.0 4.0 2.930117e+05 755.0 1765.0 0.0
66 rows × 8 columns
er_table
vehicle_age = master_table.groupby(['vehicle-age']).mean()['annual premium (in Rs)']
vehicle_age
vehicle-age
1-2 Year 29012.819064
< 1 Year 29076.004865
> 2 Years 31790.747224
Name: annual premium (in Rs), dtype: float64
correlation_table = master_table['age'].corr(master_table['annual premium (in Rs)'])
correlation_table
0.036403612835651994
er_table
master_table[['age','annual premium (in Rs)']].corr()
age annual premium (in Rs)
age 1.000000 0.036404
annual premium (in Rs) 0.036404 1.000000
def boxplot(df,ft):
df.boxplot(column = [ft])
plt.grid(False)
boxplot(df1,'age')
boxplot(df1,'region code')
boxplot(df1,'region code')
boxplot(df1,'previously-Insured')
boxplot(df1,'previously-Insured')
boxplot(df2,'annual premium (in Rs)')
boxplot(df2,'annual premium (in Rs)')
boxplot(df2,'vintage')
boxplot(df2,'vintage')
boxplot(df2,'saleschannel-code')
boxplot(df2,'saleschannel-code')
Gender_wise.plot()
<AxesSubplot:xlabel='Gender'>
Gender_wise.plot.bar()
<AxesSubplot:xlabel='Gender'>
age_wise.plot()
<AxesSubplot:xlabel='age'>
age_wise.plot.bar()
<AxesSubplot:xlabel='age'>
vehicle_age.plot()
<AxesSubplot:xlabel='vehicle-age'>
vehicle_age.plot.bar()
<AxesSubplot:xlabel='vehicle-age'>