中国保险业过去五年基础数据分析

中国保险业过去五年基础数据分析

一.分析报告介绍

“保险”是近两年来人们茶余饭后的热门话题,我本次的报告是网上学习了数据分析相关课程以后的项目结业作业。本作业将从公开途径抓取中国保险业过去5年的基础数据,管中窥豹看一看这个行业及保险产品当前的状况,过去的发展及未来的驱势。

本次作业选取了这两年我个人比较感兴趣,自己平时比较关注的保险业进行了简单的分析,从选题,数据抓取,建模分析独立完成,历时一周,花了大量的时间。虽然这份报告对于真正业内人士来说只能算是皮毛,但是也给了我一个很好了解,体验数据挖掘/数据分析的整个过程。最大的感受是最重要的是好的,足够完备的数据,有了好的数据,后面的分析建模很多时候就是水到渠成的事情了。

此外,对保险行业内部的相关资料和知识点查询,也感谢我个人的保险经纪人陆颖一直一来有问必答的无私帮助。

二.用到的主要工具

Python版本: Python3.6
jupter notebook: Anaconda3-5.2.0-Windows-x86_64
pandas:数据分析读取数据
matplotlib:绘图
rcParams:用来正常显示中文,并设置中文字体

三.保险数据采集

本次报告的数据是通过和讯保险页面采集自2013年1月至2018年9月的保险行业基础数据,主要是保险总保费,各险种保费,和总赔付支出,各险种赔付支出的数据。
具体数据爬取代码这里就省略了。

四.数据清洗和预处理

经过数据爬取阶段,我们获得了所有的数据组成一个以月份为辨识标签的二维数组(total_data),接下来我们需要对数据进行基本的预处理,其中包括了生成Dataframe,查看数据缺失及错误状况,添加缺失并修改错误数据。

import pandas as pd
import numpy as np
a = np.vstack(total_data)                     #将初始数组生成DataFrame
columns_name = ['date','原保险保费总收入','财产险收入','人身险总收入','寿险收入','健康险收入','人身意外保险收入','原保险赔付总支出','财产险支出','人身险总支出','寿险支出','健康险支出','人身意外保险支出']
df = pd.DataFrame(data = a,columns = columns_name)

df.date = pd.to_datetime(df.date)             #将传入的日期数据转变成datatime
df.set_index('date',inplace = True)           #将日期数据转成DatatimeIndex

df1 = df.loc[:,:].astype(float)               #确保每个表项都是float型

由于数据都是线性的,所以我们可以通过画个图来看数据采集是否完整,有无错误。
###############################################
####本段内容是为了解决画图无法显示中文字体的问题,如果可以显示中文则无需执行本段内容
####指定默认字体 需要先将网上下载的的SimHei.ttf 文件放入 ~\Anaconda3\Lib\site-packages\matplotlib\mpl-data\fonts\ttf 中,然后敲入以下命令即可:

import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] 
matplotlib.rcParams['font.family']='sans-serif'
#解决负号'-'显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False 

###############################################

from matplotlib import pyplot as plt
%matplotlib inline
df1.plot(figsize=(16,9))                            #对初始的DataFrame进行画图

在这里插入图片描述

根据图示,我们可以看到2016年后段,17年1月份,12月份数据缺失,此外,16年7月, 18年2月和8月线条都有突变,预示数据大概率有误。这里数据的矫正只能手动输入,矫正数据源自保险监督管理委员会官网

官网数据网页没有规律,且网页内表格不同年份的格式不一致,所以并未直接作为数据源进行采样。

df2 = df1.replace(0,np.nan)                #先将0值全部替换成NAN值,以便后期检索是否还有未补缺数据

#获取缺失的基本月份数据
data1608 = [22958.9373,5635.0848,17323.8524,13721.4564,3098.2305,504.1655,6901.1431,2937.1279,3964.0152,3242.7249,605.3101,115.9803]
data1609 = [25168.2615,6370.5827,18797.6788,14783.8733,3430.4069,583.3985,7750.6999,3321.5870,4429.1129,3610.5333,687.1908,131.3888]
data1610 = [27010.3752,7018.3821,19991.9932,15703.9707,3647.7410,640.2814,8526.1670,3670.1245,4856.0425,3946.5561,763.4167,146.0697]
data1611 = [28864.8711,7773.0544,21091.8167,16556.6817,3841.7960,693.3390,9450.0194,4131.1226,5318.8968,4287.5209,870.7195,160.6564]
data1701 = [8553.4033,973.8127,7579.5907,6861.5894,641.1138,76.8875,1277.2914,419.6850,857.6063,729.5261,109.4866,18.5937]
data1712 = [36581.0074,9834.6579,26746.3495,21455.5650,4389.4604,901.3241,11180.7933,5087.4496,6093.3437,4574.8907,1294.7670,223.6859
  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值