首页 > 其他分享 >大数据分析——糖尿病预防

大数据分析——糖尿病预防

时间:2022-12-24 03:22:06浏览次数:57  
标签:数据分析 subplot plt title df labels 糖尿病 sns 预防

一、选题的背景

  随着社会经济科学技术的不断发展,人们的生活水平也不断的提高,然而糖尿病的发病人数也在逐年上升,随着 社会老龄化进程越来越深入,糖尿病的发病率上升的趋势越来越明显。糖尿病是临床上非常常见的一种泌尿内科疾病,是因为胰岛素的分泌过少或者胰岛素作用障碍引起的血液中血糖浓度高于正常值的一种代谢性疾病,糖不能进入细胞作为能量消耗掉,大量蓄积在血液中,长期以往可以导致肾、眼、心血管和神经系统的功能障碍甚至衰竭 [1],因此糖尿病可以导致多种的并发症。    如果不及时的进行治疗的话将会带来生命危险。糖尿病在临床上主要表现为 “ 三多一少 ” 即,患者的会有多尿、多饮、多食的表现,虽然患者的食量正常甚至增加,还会出现体质量的下降的现象,除此之外也有患者出现乏力和视力下降等现象。就目前的科学技术来说糖尿病不能够得到根治,只能利用药物进行血糖的控制,因此,该病是终身性质的疾病。面对该病的患病人群广,有效的预防糖尿病的产生就显得非常重要。 二、数据的基本类型

 

2.数据分析的课程设计方案概述

 先对数据集的数据进行所需要的处理,在计算数据集中各种数据与糖尿病的相关性。然后探索其他指标之间的关联性

 

三数据来源

kaggle Diabetes, Hypertension and Stroke Prediction | Kaggle

 

 四代码部分

 

#导入包
import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('diabetes_data.csv' )
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = True
df.duplicated()
df

 

 

 

df.describe()

 

 

#柱状图
plt.figure(figsize=(20,60))
#1
plt.subplot(8,1,1)
plt.title("性别")
sns.countplot(y=df['Sex'],hue=df['Sex'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,2)
plt.title("是否高胆固醇患者")
sns.countplot(y=df['HighChol'],hue=df['HighChol'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,3)
plt.title("近期是否有检查胆固醇")
sns.countplot(y=df['CholCheck'],hue=df['CholCheck'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,4)
plt.title("是否吸烟")
sns.countplot(y=df['Smoker'],hue=df['Smoker'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,5)
plt.title("是否患有心脏病")
sns.countplot(y=df['HeartDiseaseorAttack'],hue=df['HeartDiseaseorAttack'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,6)
plt.title("近期是否运动")
sns.countplot(y=df['PhysActivity'],hue=df['PhysActivity'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,7)
plt.title("是否吃水果")
sns.countplot(y=df['Fruits'],hue=df['Fruits'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,8)
plt.title("是否吃蔬菜")
sns.countplot(y=df['Veggies'],hue=df['Veggies'],orientation="horizontal" )
plt.legend()

 


 

 
#饼图
plt.figure(figsize=(20,40))
#1
plt.subplot(4,2,1)
plt.title("性别")
labels=['否','是']
b=df['Sex'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,2)
plt.title("是否高胆固醇")
labels=['否','是']
b=df['HighChol'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,3)
plt.title("近期是否检查过胆固醇")
labels=['否','是']
b=df['CholCheck'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,4)
plt.title("是否吸烟")
labels=['否','是']
b=df['Smoker'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,5)
plt.title("是否是心脏病患者")
labels=['否','是']
b=df['HeartDiseaseorAttack'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,6)
plt.title("近期是否运动")
labels=['否','是']
b=df['PhysActivity'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,7)
plt.title("吃不吃水果")
labels=['否','是']
b=df['Fruits'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,8)
plt.title("吃不吃蔬菜")
labels=['否','是']
b=df['Veggies'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

 

 

从上图看定期检查胆固醇的人很少得糖尿病
而心脏病患者也更少同时患有糖尿病
而多运动,多吃水果,蔬菜的人也跟任意预防糖尿病


从上图图中我们能更明显的看出多运动越有效预防糖尿病。


多运动与健康状态,心里健康,身体健康和心脏病之间关系


import seaborn as sns sns.pairplot(df[df.PhysActivity == 1], vars = ['Age', 'BMI','GenHlth','MentHlth','PhysHlth'], hue = 'HeartDiseaseorAttack') plt.show()

 


 

 
import seaborn as sns
import matplotlib.pyplot as plt

plt.figure( figsize=(30,25), dpi=80)
plt.subplot(3,2,1)
sns.distplot(df['BMI'])


plt.subplot(3,2,2)
sns.kdeplot(df['HeartDiseaseorAttack'],color='r')


plt.figure( figsize=(30,25), dpi=80)
plt.subplot(3,2,3)
sns.regplot(x='BMI',y='HeartDiseaseorAttack',data=df)


plt.subplot(3,2,4)
sns.regplot(x='BMI',y='HeartDiseaseorAttack',data=df,color='r',marker='*')


plt.subplot(3,2,5)
sns.boxplot(x=df['HeartDiseaseorAttack'],y=df['BMI'],data=df)
plt.show()

 


 

 

 

import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('diabetes_data.csv' )
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = True
df.duplicated()

#删除多余无关项目
del df['HvyAlcoholConsump']
# del df['GenHlth']
# del df['MentHlth']
# del df['PhysHlth']
del df['DiffWalk']
del df['Stroke']
del df['HighBP']
del df['Diabetes']
 
#进行数据分析
df.describe()

#柱状图
plt.figure(figsize=(20,60))
#1
plt.subplot(8,1,1)
plt.title("性别")
sns.countplot(y=df['Sex'],hue=df['Sex'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,2)
plt.title("是否高胆固醇患者")
sns.countplot(y=df['HighChol'],hue=df['HighChol'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,3)
plt.title("近期是否有检查胆固醇")
sns.countplot(y=df['CholCheck'],hue=df['CholCheck'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,4)
plt.title("是否吸烟")
sns.countplot(y=df['Smoker'],hue=df['Smoker'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,5)
plt.title("是否患有心脏病")
sns.countplot(y=df['HeartDiseaseorAttack'],hue=df['HeartDiseaseorAttack'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,6)
plt.title("近期是否运动")
sns.countplot(y=df['PhysActivity'],hue=df['PhysActivity'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,7)
plt.title("是否吃水果")
sns.countplot(y=df['Fruits'],hue=df['Fruits'],orientation="horizontal" )
plt.legend()

plt.subplot(8,1,8)
plt.title("是否吃蔬菜")
sns.countplot(y=df['Veggies'],hue=df['Veggies'],orientation="horizontal" )
plt.legend()



#饼图
plt.figure(figsize=(20,40))
#1
plt.subplot(4,2,1)
plt.title("性别")
labels=['否','是']
b=df['Sex'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,2)
plt.title("是否高胆固醇")
labels=['否','是']
b=df['HighChol'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,3)
plt.title("近期是否检查过胆固醇")
labels=['否','是']
b=df['CholCheck'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,4)
plt.title("是否吸烟")
labels=['否','是']
b=df['Smoker'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,5)
plt.title("是否是心脏病患者")
labels=['否','是']
b=df['HeartDiseaseorAttack'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,6)
plt.title("近期是否运动")
labels=['否','是']
b=df['PhysActivity'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,7)
plt.title("吃不吃水果")
labels=['否','是']
b=df['Fruits'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')

plt.subplot(4,2,8)
plt.title("吃不吃蔬菜")
labels=['否','是']
b=df['Veggies'].value_counts()
plt.pie(b,labels=labels,explode=[0,0.2],autopct='%1.1f%%')


# 从此图中我们能更明显的看出多运动越有效预防糖尿病。

# 多运动与健康状态,心里健康,身体健康和心脏病之间关系

import seaborn as sns
sns.pairplot(df[df.PhysActivity == 1], vars = ['Age', 'BMI','GenHlth','MentHlth','PhysHlth'], hue =  'HeartDiseaseorAttack')
plt.show()



import seaborn as sns
sns.pairplot(df[df.PhysActivity == 0], vars = ['Age', 'BMI','GenHlth','MentHlth','PhysHlth'], hue =  'HeartDiseaseorAttack')
plt.show()


 #体重和身高的比值与心脏病患病几率关系图
import seaborn as sns
import matplotlib.pyplot as plt

plt.figure( figsize=(30,25), dpi=80)
plt.subplot(3,2,1)
sns.distplot(df['BMI'])


plt.subplot(3,2,2)
sns.kdeplot(df['HeartDiseaseorAttack'],color='r')


plt.figure( figsize=(30,25), dpi=80)
plt.subplot(3,2,3)
sns.regplot(x='BMI',y='HeartDiseaseorAttack',data=df)


plt.subplot(3,2,4)
sns.regplot(x='BMI',y='HeartDiseaseorAttack',data=df,color='r',marker='*')


plt.subplot(3,2,5)
sns.boxplot(x=df['HeartDiseaseorAttack'],y=df['BMI'],data=df)
plt.show()

 

五总结
通过数据可知很大一部分糖尿病病例是可以预防的。事实证明,只要在生活方式上采取简单易行的措施,就能有效预防或延缓2 型糖尿病的发作。保持正常体质量,从事有规律的体育运动,并注重饮食健康,即可降低患糖尿病风险。开展自我管理教育是应对措施极为重要的内容。通过对人群各种数据进行健康教育使得高危人群认识到糖尿病的各种知识,给糖尿病的预防打下坚实的基础,能够做到早发现,早治疗,减少该病的死亡率。
 

标签:数据分析,subplot,plt,title,df,labels,糖尿病,sns,预防
From: https://www.cnblogs.com/wuwenxing98/p/17001928.html

相关文章

  • 大数据分析— 二手汽车价格预测
    二手汽车价格预测一:选题背景当今已经是大数据的时代,随着数据分析工具和技术的不断改进,掌握大数据分析技能也可以为个人的职业发展带来很大的好处。我分析的是二手汽车的......
  • udemy课程和评论的大数据分析
    一、选题的背景Udemy是一个面向学生和专业人士的在线学习平台。Udemy拥有超过5000万学生和57,000名教师,他们以超过65种语言教授课程。与其他在线教育平台不同的是,Udemy不......
  • 天猫商品数据分析
    一、选题的背景随着互联网与电商平台的发展,网上购物正成为国内消费者购物的重要方式。在重要的电商平台淘宝中,用户通过浏览商品详情页、收藏、加购或直接购买等方式来进行......
  • 大数据分析——景点数据分析
    一、选题背景随着我国经济、科技的不断发展和人民生活水平的不断提高,旅游逐渐成为社会的主要经济部门。旅游这项活动在伴随着经济社会的发展同时应运而生,它本质上是一种社......
  • Python网络爬虫—对京东口红销售的数据分析
    一、选题的背景 对电商来说,抓取某些数据,再进行分析,可以有效地反映出数据在某个区间内变化情况。数据受某些因素而发生巨大的影响,也可以借助分析的数据来规划相关项目的后......
  • 数据分析——近年倒闭公司数据分析
    一、选题背景原因:应届毕业生毕业找工作就是一个很大的选择。在即将找工作的这个时间段,就业公司的前景也很重要。所以将分析倒闭公司的情况作为选题。目标:分析每年倒闭公......
  • 淘宝双12购物数据分析
    一、选题的背景随着社会的发展,数据化时代,线上购物比例增幅巨大,各种的线上购物节,6.18、双十一、双十二等等。因此分析双十二活动日时段各行为数量的走势和对比,以及活动......
  • Python网络爬虫——福州小区信息的抓取和数据分析
    一、选题的背景为了能够充分了解福州当地小区的房价信息,并能够充分了解小区的位置,为每个人不同的需求,选择不同价位的房源,并通过其成交量进行参考和选择,以及剩余量爬取的信......
  • 大数据分析——我国近十年的人口比率分析
    选题背景近年来,我国人口总量惯性增长,人口增速有所放缓。与之前相比,人口老龄化加速,人口数量红利进入尾声。当前我国人口的特征是高龄少子,适龄人口生育意愿显著下降,人口老龄......
  • python数据分析练习
    第一部分:数据类型处理数据加载字段含义:user_id:用户IDorder_dt:购买日期order_product:购买产品的数量order_amount:购买金额df=pd.read_csv('../data/CDN......