使用auto_ins作如下分析
1、首先对loss重新编码为1/0,有数值为1,命名为loss_flag
2、对loss_flag分布情况进行描述分析
3、分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系
# -*- coding: utf-8 -*-
"""
Created on Thu May 31 17:34:48 2018
@author: Young
"""
# In[1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import seaborn as sns
import os
# In[2]:
os.chdir(r'D:\temp\homework')
df = pd.read_csv("auto_ins.csv",encoding="GBK")
# In[3]:
#增加loss_flag列
df["loss_flag"] = df["Loss"].apply(lambda x:0 if x==0 else 1)
df.head()
# In[4]
# 用饼图对loss_flag分布情况描述分析,autopct带百分数参数
df.loss_flag.value_counts().plot(kind="pie",autopct='%.2f%%')
# In[5]
# 出险和年龄的关系
sub_age_df = pd.crosstab(df.Age,df.loss_flag)
sub_age_df["sum1"]=sub_age_df.sum(1)
sub_age_df = sub_age_df.div(sub_age_df.sum1,axis=0)
sub_age_df[[0,1]].plot(kind = 'bar',stacked= True)
# In[5]
# 出险和驾龄的关系
sub_vage_df = pd.crosstab(df.vAge,df.loss_flag)
sub_vage_df["sum1"]=sub_vage_df.sum(1)
sub_vage_df = sub_vage_df.div(sub_vage_df.sum1,axis=0)
sub_vage_df.head()
sub_vage_df[[0,1]].plot(kind = 'bar',stacked= True)
# In[6]
# 出险和性别的关系
sub_gender_df = pd.crosstab(df.Gender,df.loss_flag)
sub_gender_df["sum1"]=sub_gender_df.sum(1)
sub_gender_df = sub_gender_df.div(sub_gender_df.sum1,axis=0)
sub_gender_df.head()
sub_gender_df[[0,1]].plot(kind = 'bar',stacked= True)
# In[7]
# 出险和婚否的关系
sub_marital_df = pd.crosstab(df.Marital,df.loss_flag)
sub_marital_df["sum1"]=sub_marital_df.sum(1)
sub_marital_df = sub_marital_df.div(sub_marital_df.sum1,axis=0)
sub_marital_df.head()
sub_marital_df[[0,1]].plot(kind = 'bar',stacked= True)