以下是相关分析步骤与过程
- 将Hw4文件导入
- 使用auto_ins作如下分析
- 1、首先对loss重新编码为1/0,有数值为1,命名为loss_flag
- 2、对loss_flag列进行描述分析(计数计频次)
- 3、分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系
导入数据
Hw4文件导入
1 2 3 4 5 6 7 8 9 10
| import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib import seaborn as sns import os
os.chdir('/home/vitan/Python/Python/HW4')
auto = pd.read_csv('auto_ins.csv',encoding='gbk')
|
数据处理
- 定义codeMy(x)函数,其作用是对auto里的loss重新编码为1/0,有数值为1,命名为loss_flag
1 2 3 4 5
| def codeMy(x): if x > 0: return 1 else: return 0
|
- 对auto里的loss重新编码为1/0,有数值为1,命名为loss_flag
1
| auto.loss_flag = auto.Loss.map(codeMy)
|
- 应用匿名函数的方法对loss重新编码为1/0,有数值为1,命名为loss_flag1
1
| auto["loss_flag1"]= auto.Loss.map(lambda x:1 if x > 0 else 0)
|
画图
分析
1
| auto.loss_flag.value_counts()
|
1
| auto.loss_flag.value_counts()/auto.loss_flag.count()
|
1
| auto.loss_flag.value_counts().plot(kind="bar")
|
- 分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系
1 2 3 4 5 6 7 8 9 10 11
| fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
sns.boxplot(x="loss_flag",y="Age",data=auto,ax =ax1)
sns.boxplot(x="loss_flag",y="exp",data=auto,ax =ax2)
|
- 是否出险和性别:绘制面积堆积柱形图,分析出险和性别的关系
1 2
| from stack2dim import * stack2dim(auto,"Gender","loss_flag")
|
- 是否出险和婚姻状态:绘制面积堆积柱形图,分析出险和婚姻的关系
1
| stack2dim(auto,"Marital","loss_flag")
|