# -*- coding: utf-8 -*-
# In[1]:
import pandas as pd
import numpy as np
import seaborn as sns
import os
# In[2]:
os.chdir(r'E:\Python_learning\data_science\task_0529\HW4')
auto = pd.read_csv("auto_ins.csv",encoding = 'gbk')
auto.head()
# In[3]:
#对loss重新编码为1/0,有数值为1,命名为loss_flag
auto['loss_flag'] = auto['Loss'].apply(lambda x: 1 if x!=0 else 0)
auto.head()
# In[4]:
#对loss_flag分布情况进行描述分析
auto.loss_flag.value_counts()
# In[5]:
auto.loss_flag.value_counts().plot(kind ='bar')
# In[6]:
#分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系
sns.boxplot(x = 'loss_flag', y = 'Age', data = auto)
# In[7]:
sns.boxplot(x = 'loss_flag', y = 'vAge', data = auto)
# In[8]:
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
pd.crosstab(auto.loss_flag,auto.Gender).plot(kind = "bar")
pd.crosstab(auto.loss_flag,auto.Marital).plot(kind = "bar")
# In[9]:
loss_gender =pd.crosstab(auto.loss_flag,auto.Gender)
loss_gender
# In[10]:
loss_gender["sum"] = loss_gender.sum(1)
loss_gender
# In[11]:
loss_gender = loss_gender.div(loss_gender.sum(1),axis = 0)
loss_gender
# In[12]:
loss_gender[["女","男"]].plot(kind = 'bar', stacked = "True")
# In[13]:
loss_Ma =pd.crosstab(auto.loss_flag,auto.Marital)
loss_Ma["sum"] = loss_Ma.sum(1)
loss_Ma
# In[14]:
loss_Ma = loss_Ma.div(loss_Ma.sum(1),axis = 0)
loss_Ma
# In[]:
# In[15]:
loss_Ma[["已婚","未婚"]].plot(kind = 'bar', stacked = "True")