嗨喽,大家好呀~这里是爱看美女的茜茜呐
明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论
环境使用:
在开始写我们的代码之前,我们要准备好运行代码的程序
Anaconda (python3.9)
–> 识别我们写的代码
开发工具:
jupyter notebook
–> 代码编辑功能敲代码的工具
不会安装的可以文末名片+我获取哦
数据准备:
导入模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
加载字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
显示负号
plt.rcParams['axes.unicode_minus'] = False
data = pd.read_csv('医疗数据.csv',engine='python')
data.head()
import missingno as msno
msno.matrix(data)
RYQH(入院区划)存在85个(data.info())缺失值
data.RYQH[data.RYQH.isnull()] = data.JZQH[data.RYQH.isnull()]
年龄NL存在缺失值,运用众数补全,其实这里最好应该用患病种类的年龄的中位数来补全最好
data.NL.fillna(data['NL'].mode()[0],inplace=True)
性别XB有两条缺失值,直接拿众数补上
data.XB.fillna('女',inplace=True)
接下里做一些可视化分析
区域分布,这里的划分比较乱,需要把他们统一划分到镇或者街道,这个应该是临沂市的区划
qh_mapping = {
'费县':'费县','兰山区':'兰山区','双堠镇':'沂南县','长城镇':'兰陵县','流峪镇':'平邑县','兰陵县':'兰陵县','夏蔚镇':'沂水县','四十里镇':'沂水县','沂水县':'沂水县','市本级':'市本级','郑城镇':'平邑县','山东省临沂市':'市本级','新庄镇':'费县','大兴镇':'临沭县','依汶镇':'沂南县','郯城县港上镇':'郯城县','温水镇':'平邑县','朱田镇':'费县','高新开发区':'高新区','上冶镇':'费县','姚店子镇':'沂水县','汤河':'河东区','临港产业区':'莒南县','孙祖镇':'沂南县','沂南县':'沂南县','圈里乡':'沂水县','平邑镇':'平邑县','郯城县马头镇':'郯城县','临沭县':'临沭县','莒南县':'莒南县','南桥镇':'兰陵县','高都街道办事处':'罗庄区','砖埠镇':'沂南县','青云镇':'临沭县','河东区':'河东区','湖头镇':'沂南县','车辋镇':'兰陵县','郯城县郯城镇':'郯城县','探沂镇':'费县','平邑县':'平邑县','费城镇':'费县','马庄镇':'费县','郯城县胜利乡':'郯城县','郯城县泉源乡':'郯城县','大仲村镇':'兰陵县','店头镇':'临沭县','郯城县马头镇高册':'郯城县','郯城县红花乡':'郯城县','下村乡':'兰陵县','郯城县':'郯城县','郯城县庙山镇':'郯城县','郯城县李庄镇':'郯城县','郯城县杨集镇':'郯城县','郯城县归昌乡':'郯城县','铜石镇':'平邑县','马站镇':'沂水县','杨庄镇':'沂水县','白彦镇':'平邑县','仲村镇':'平邑县','院东头镇':'沂水县','蒙山旅游区':'蒙阴县','大庄镇':'沂南县','玉山镇':'临沭县','许家湖镇':'沂水县','罗庄区':'罗庄区','诸葛镇':'沂水县','经济开发区':'经济开发区','郯城县重坊镇':'郯城县','泉庄镇':'沂水县','褚墩镇':'罗庄区','卞庄街道':'兰陵县','罗庄街道办事处':'罗庄区','马厂湖镇':'兰山区','临沭街道办':'临沭县','蒲汪镇':'沂南县','马牧池乡':'沂南县','地方镇':'平邑县','保太镇':'平邑县','富官庄镇':'沂水县','沂城街道办事处':'沂水县','高桥镇':'沂水县','沂堂镇':'罗庄区','临涧镇':'平邑县','张庄镇':'沂南县','卞桥镇':'平邑县','薛庄镇':'费县','曹庄镇':'临沭县','付庄街道办事处':'罗庄区','苏村镇':'沂南县','梁邱镇':'费县','磨山镇':'兰陵县','石门镇':'临沭县','兰陵镇':'兰陵县','黄山镇':'罗庄区','沙沟镇':'沂水县','丰阳镇':'平邑县','郑山街道办':'临沭县','武台镇':'平邑县','凤凰岭':'河东区','龙家圈镇':'沂水县','尚岩镇':'兰陵县','盛庄街道办事处':'罗庄区','新兴镇':'兰陵县','庄坞镇':'兰陵县','郯城县新村乡':'郯城县','向城镇':'兰陵县','岸堤镇':'沂南县','南张庄乡':'费县','胡阳镇':'费县','铜井镇':'沂南县','郯城县高峰头镇':'郯城县','大田庄乡':'费县','芦柞镇':'兰陵县','鲁城镇':'兰陵县','石井镇':'费县','汤头':'河东区','八湖':'河东区','矿坑镇':'兰陵县','神山镇':'兰陵县','联城':'蒙阴县','工业园':'工业园','辛集镇':'沂南县','相公':'河东区','郯城县花园乡':'郯城县','蛟龙镇':'临沭县','册山街道办事处':'罗庄区','郑旺':'河东区','蒙阴县':'蒙阴县','罗西办事处':'高新区','郯城县沙墩镇':'郯城县','太平':'河东区','青驼镇':'沂南县','界牌':'蒙阴县','高庄镇':'沂水县','金岭镇':'兰陵县','岱崮':'蒙阴县','崔家峪镇':'沂水县','蒙阴街道':'蒙阴县','高新区区直社区':'高新区','九曲':'河东区','桃墟':'蒙阴县','旧寨':'蒙阴县','垛庄':'蒙阴县','高都':'罗庄区','野店':'蒙阴县','道托镇':'沂水县'}
data['QH'] = data['RYQH'].map(qh_mapping)
图像基本设置
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
fig = plt.figure(figsize=(12,8))
plt.bar(range(16),data.QH.value_counts(),color='purple',alpha=0.4)
plt.xlim(-1,16)
plt.title('人员区划统计')
for x,y in enumerate(data.QH.value_counts()):
plt.text(x,y+100,y,ha='center')
plt.xticks(range(16),['兰山区','罗庄区','平邑县','莒南县','市本级','临沭县','沂水县','兰陵县','郯城县','费县','沂南县','高新区','河东区','蒙阴县','经济开发区','工业园'],rotation=30);
病患主要集中在兰山区和罗庄区、平邑区,这几个区的常驻人口多
对就诊区划做同样处理
data['JZ'] = data['JZQH'].map(qh_mapping)
fig = plt.figure(figsize=(12,8))
plt.bar(range(14),data.JZ.value_counts(),color='purple',alpha=0.4)
plt.xlim(-1,14)
plt.title('就诊区划统计')
for x,y in enumerate(data.JZ.value_counts()):
plt.text(x,y+100,y,ha='center')
plt.xticks(range(14),['兰山区','市本级','罗庄区','平邑县','莒南县','沂水县','临沭县','兰陵县','郯城县','沂南县','费县','河东区','蒙阴县','高新区'],rotation=30);
男性病患相对女性更多,但两者接近相同数量级
fig = plt.figure()
box =plt.boxplot([data.NL[data.XB=='男'],data.NL[data.XB=='女']],whis=1.5,
patch_artist=True,
labels = ['男','女'], # 添加具体的标签名称
showmeans=True,
boxprops = {
'color':'black','facecolor':'#9999ff'},
flierprops = {
'marker':'o','markerfacecolor':'red','color':'black'},
meanprops = {
'marker':'D','markerfacecolor':'indianred'},
medianprops = {
'linestyle':'--','color':'orange'});
plt.text(0.8,data[data.XB=='男'].NL.quantile([0.25]).iloc[0],data[data.XB=='男'].NL.quantile([0.25]).iloc[0])
plt.text(0.8,data[data.XB=='男'].NL.quantile([0.75]).iloc[0],data[data.XB=='男'].NL.quantile([0.75]).iloc[0])
plt.text(1.8,data[data.XB=='女'].NL.quantile([0.25]).iloc[0],data[data.XB=='女'].NL.quantile([0.25]).iloc[0])
plt.text(1.8,data[data.XB=='女'].NL.quantile([0.75]).iloc[0],data[data.XB=='女'].NL.quantile([0.75]).iloc[0])
plt.title('分性别的年龄箱线图')
男性和女性的年龄分布比较相近,患者的年龄主要集中在44/45-70岁之间
import squarify
fig = plt.figure(figsize=(10,8))
plot = squarify.plot(sizes = dd.ZDMC, # 指定绘图数据
label = dd[dd.ZDMC>30]['index'], # 指定标签
alpha = 0.6, # 指定透明度
value = dd[dd.ZDMC>30]['ZDMC'], # 添加数值标签
edgecolor = 'white', # 设置边界框为白色
linewidth =3 # 设置边框宽度为3
)
支气管肺炎、肺炎、急性支气管炎、发热、急性上呼吸道感染、儿童孤独症是低龄儿童常见疾病,主要是呼吸道疾病
data.ZFY.quantile([0.25,0.75,0.9,0.95])
从费用的分布上来看,医疗费用75%都在1474元,90%在3766元以下
20岁到40岁的女性患病数量高于男性,男女性均在60-80岁患病数量较高
fig = plt.figure(figsize=(15,7))
plt.bar(range(15),data.YLLB.value_counts().sort_index())
plt.xticks(range(15),['住院前急诊','单病种住院','大病购药','无责任人意外伤害','普通住院','普通门诊','机关事业单位生育住院','特殊疾病门诊','生育住院','转省内住院','转省内门诊慢性病','转省外住院','转省外门诊慢性病','转省平台住院','门诊慢性病'],rotation=30)
for x,y in enumerate(data.YLLB.value_counts().sort_index()):
plt.text(x,y+100,y,ha='center')
fig = plt.figure(figsize=(15,7))
plt.bar(range(6),data.RYLB.value_counts().sort_index())
plt.xticks(range(6),['在职类型1','在职类型2','居民','离休','退休类型1','退休类型2']);
感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 ,有学习到一点知识~
躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。
文章浏览阅读896次。全局设置git config --global user.name "acgkaka"git config --global user.email "[email protected]"初始化.git文件夹git init将当前文件夹连接到test远程仓库git remote add origin https://gitee.com/acgkaka/test.git将本地的当前分支推送到远程的master分支,同时指定origin为默认主机,(后面再使用git push的时候就可以不加任_git bash命令
文章浏览阅读6k次。项目原来在spring boot1.5.9版本时候使用@EnableMongoAuditing用同样的方法注入并没有报错,当切换到2.0版本是莫名其妙的出问题了,搞的我一脸懵逼,花了好久都没解决,后来偶然看到我们公司一个大佬的自定义注入的的方式,瞬间感觉到了王者和青铜的差距。 下面是配置代码@Configuration@EnableMongoAuditing@PropertySourc..._springboot2.0+mongotemplate
文章浏览阅读1.4k次,点赞2次,收藏7次。最近准备写一个前端桌面应用,了解到了一个新的框架——Electron,它是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。接下来,我们就来搭建一个基于vue的electron应用吧。_electron-vue文档
文章浏览阅读100次。saymoney for mac这款软件是您的个人理财的管理和评估的一种创新解答。这款软件支持对您的费用、收入和预算的评估,交易,类别,帐户的管理以及收据的管理等功能,对于财务管理人员来说再合适不过了!SayMoney for Mac安装教程安装包下载完成后,双击.pkg文件,按提示即可完成安装。SayMoney for Mac功能介绍操作简单直观管理和评估您的费用和收入交易,类别,账户和转账的管理经常性支出和收入的管理数据过滤,排序,分组和聚合通过PIN保护5种app设计颜色语音输入
文章浏览阅读1k次。第一次接触AXI 4 总线是在使用xilinx zynq的时候,当时用的时候一团雾水,现在雾水少了些,但还是有很多地方没有接触到。本文作为自己的总结,有任何问题,欢迎批评指正。什么是AXI总线?AXI 作为 ARM AMBA 微控制器总线的一部分,第一次出现在AMBA 3.0中。后面AMBA 4.0发布,AXI4出现了。AXI 4总线和别的总线一样,都用来传输bits信息..._axi4 memory
文章浏览阅读2.3k次。Tickrate Enabler 服务器速率解除配置方法网站访问Windows安装方法Linux安装 方法网站访问下载地址:Tickrate EnablerWindows安装方法Linux安装 方法###1.指令查看plugins_print 查看插件plugin_printLoaded plugins:---------------------0: "Tickrate_Enabler 1.4-dev, ProdigySim"1: "Metamod:Source_tickrate_enabler
文章浏览阅读6.7w次,点赞2次,收藏11次。涉及到两个Java类 主类:AutoCompleteComponet.java 数据类:AutoCompleteComponet.java 效果图如下: 代码如下: 主类:AutoCompleteComponet.javapackage com.JTextFileAndJComboBox;import java.awt.BorderLayout;public class AutoCompl_qfmhcj
文章浏览阅读428次。** 浅谈fopen的几个常用用法**首先fopen作为Linux中一个比较常见的打开文件的函数在编程中有着广泛的用途。通过程序员用户手册可知fopen需要两个字符串指针作为形参,返回值为FILE型,它的第二个形参有多种形式比如“r”,“r+”.“w”,“w+”,“a”,"a+"等,在这里我们注重探讨一个前四种的用法。下图为“r”的测试代码:1。先创建一个FILE的指针用来接收fopen的返回值初始化为空指针2.当p==空指针时则输出打开失败,为了查看打开失_linux系统下fopen函数的操作都有哪些
文章浏览阅读1.3k次,点赞3次,收藏3次。1、方案选择kube-prometheus,全家桶。分别安装prometheus和grafana我也不想选择第二种,但是我就一台普通的PC,安装kube-prometheus直接给我报错CPU不够用了,我~~2、先尝试第一种,如果成功了就别瞎折腾了,心累~先看下对应关系,最新的直接在github上看,旧的可能不好找。git clone https://github.com/prometheus-operator/kube-prometheus.gitgit checkout releas_minikube 部署grafana
文章浏览阅读4.7k次。Description定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。_广度优先 数据结构
文章浏览阅读4.8k次。package utils;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.font.FontRenderContext;import java.awt.geom.AffineTransform;import java.awt.geom.Rectangle2D;impo_java 文字转图片 高度自适应
文章浏览阅读167次。Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。SSM + mybatis + Maven + JSP 等等组成,B/S模式 + Maven管理等等。1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;其他版本理论上也可以。2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;_svhw