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

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签