# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
#%%
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
#%%
os.chdir(r'D:\working\SUN\tianshan8\03\HW4')
snd = pd.read_csv("auto_ins.csv", encoding='GBK')
#%%
snd['Loss_flag'] = snd.Loss.mask(snd.Loss>0)
snd.head()
snd['Loss_flag'] = snd.Loss_flag.fillna(1)
snd.head()
#%%
#snd.Loss_flag.value_counts().plot(kind='pie',autopct='%3.1f%',shadow=True, labeldistance=1.1, startangle = 90,pctdistance = 0.6)
# 查看有损失在总样本的占比
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'];
mpl.rcParams['axes.unicode_minus'] = False
labels = ['无损失','有损失']
plt.pie(x=snd.Loss_flag.value_counts(),labels=labels,autopct='%3.1f %%',
shadow=True, labeldistance=1.1, startangle = 90,pctdistance = 0.6)
#%%
# 无防盗装置的损失量是 有防盗措施的4倍左右
pd.crosstab(snd.AntiTFD,snd.Loss_flag)[[1]].plot(kind='bar')
#%%
tfd_lossflag = pd.crosstab(snd.AntiTFD,snd.Loss_flag)
tfd_lossflag['Sum1'] = tfd_lossflag.sum(1)
tfd_lossflag = tfd_lossflag.div(tfd_lossflag.Sum1,axis = 0)
tfd_lossflag[[0,1]].plot(kind='bar',stacked = True)
tfd_lossflag.head()
#%%
# 可以看出 无论有无防盗其损失率基本一致,但是无防盗装置情况下其基数是有防盗装置的4倍
from stack2dim import *
stack2dim(snd,i="AntiTFD",j="Loss_flag")
#%%
age_lossflag = pd.crosstab(snd.Age,snd.Loss_flag)
age_lossflag['SUM'] = age_lossflag.sum(1)
age_lossflag = age_lossflag.div(age_lossflag.SUM,axis = 0)
age_lossflag[[0,1]].plot(kind='bar',stacked = True)
age_lossflag.head()
#%%%
# 可以看出出险年龄是呈正态分布,30-45岁是出险高峰期
snd.Age.where(snd.Loss_flag>0).hist(bins = 30)
#%%
#随着驾龄的增加 出险率会逐渐降低,在2-7年为一个高峰期
stack2dim(snd,i="exp",j="Loss_flag")
#%%
snd.Loss_flag.groupby(snd.exp).count().plot(kind='bar')
#%%
# 女人出险几率较高,但是男人出险基数更大
stack2dim(snd,i="Gender",j="Loss_flag")
#%%
#未婚开车少,但是出事故几率更大;婚后开车更多
stack2dim(snd,i="Marital",j="Loss_flag")