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

智能推荐

Git(五)常用命令精简整理_git bash命令-程序员宅基地

文章浏览阅读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命令

spring boot2.0自定义注入mongoTemplate使用审计标签@EnableMongoAuditing报错_springboot2.0+mongotemplate-程序员宅基地

文章浏览阅读6k次。项目原来在spring boot1.5.9版本时候使用@EnableMongoAuditing用同样的方法注入并没有报错,当切换到2.0版本是莫名其妙的出问题了,搞的我一脸懵逼,花了好久都没解决,后来偶然看到我们公司一个大佬的自定义注入的的方式,瞬间感觉到了王者和青铜的差距。 下面是配置代码@Configuration@EnableMongoAuditing@PropertySourc..._springboot2.0+mongotemplate

【Electron-Vue】搭建Electron-Vue前端桌面应用_electron-vue文档-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏7次。最近准备写一个前端桌面应用,了解到了一个新的框架——Electron,它是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。接下来,我们就来搭建一个基于vue的electron应用吧。_electron-vue文档

SayMoney for Mac(个人理财软件) v2.2.7中文免费版-程序员宅基地

文章浏览阅读100次。saymoney for mac这款软件是您的个人理财的管理和评估的一种创新解答。这款软件支持对您的费用、收入和预算的评估,交易,类别,帐户的管理以及收据的管理等功能,对于财务管理人员来说再合适不过了!SayMoney for Mac安装教程安装包下载完成后,双击.pkg文件,按提示即可完成安装。SayMoney for Mac功能介绍操作简单直观管理和评估您的费用和收入交易,类别,账户和转账的管理经常性支出和收入的管理数据过滤,排序,分组和聚合通过PIN保护5种app设计颜色语音输入

从零学习AXI4总线-程序员宅基地

文章浏览阅读1k次。第一次接触AXI 4 总线是在使用xilinx zynq的时候,当时用的时候一团雾水,现在雾水少了些,但还是有很多地方没有接触到。本文作为自己的总结,有任何问题,欢迎批评指正。什么是AXI总线?AXI 作为 ARM AMBA 微控制器总线的一部分,第一次出现在AMBA 3.0中。后面AMBA 4.0发布,AXI4出现了。AXI 4总线和别的总线一样,都用来传输bits信息..._axi4 memory

[L4D]Tickrate Enabler 服务器速率配置方法_tickrate_enabler-程序员宅基地

文章浏览阅读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

随便推点

java Swing中JTextField自动补全功能例子_qfmhcj-程序员宅基地

文章浏览阅读6.7w次,点赞2次,收藏11次。涉及到两个Java类 主类:AutoCompleteComponet.java 数据类:AutoCompleteComponet.java 效果图如下: 代码如下: 主类:AutoCompleteComponet.javapackage com.JTextFileAndJComboBox;import java.awt.BorderLayout;public class AutoCompl_qfmhcj

今天向大家介绍一个Linux中比较常见的一个IO函数fopen的用法_linux系统下fopen函数的操作都有哪些-程序员宅基地

文章浏览阅读428次。** 浅谈fopen的几个常用用法**首先fopen作为Linux中一个比较常见的打开文件的函数在编程中有着广泛的用途。通过程序员用户手册可知fopen需要两个字符串指针作为形参,返回值为FILE型,它的第二个形参有多种形式比如“r”,“r+”.“w”,“w+”,“a”,"a+"等,在这里我们注重探讨一个前四种的用法。下图为“r”的测试代码:1。先创建一个FILE的指针用来接收fopen的返回值初始化为空指针2.当p==空指针时则输出打开失败,为了查看打开失_linux系统下fopen函数的操作都有哪些

怎么给minikube部署prometheus和grafana_minikube 部署grafana-程序员宅基地

文章浏览阅读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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。_广度优先 数据结构

根据指定的文字生成图片(自适应大小) 工具类_java 文字转图片 高度自适应-程序员宅基地

文章浏览阅读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 文字转图片 高度自适应

JSP+ssm计算机毕业设计连锁洗衣店管理系统svhw2【源码、数据库、LW、部署】-程序员宅基地

文章浏览阅读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

推荐文章

热门文章

相关标签