python对医疗数据进行分析,看看男女生病几率_python医疗数据分析-程序员宅基地

技术标签: python  数据分析  信息可视化  

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

什么是数据分析

明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论

准备

环境使用:

在开始写我们的代码之前,我们要准备好运行代码的程序

  • 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']);

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦

希望本篇文章有对你带来帮助 ,有学习到一点知识~

躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_72282564/article/details/130663307

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法