1. 患者基本信息分析
这部分数据都是关于鼻咽癌患者的基本信息,我们尝试分析一下看看这些患者有没有什么特征。首先导入数据。
import pandas as pd
df = pd.read_csv("D:\jupyter\医疗数据建模\data\TB_PAT_BASE_INFO_BYA.csv", encoding='GBK')
df.sample(10)

默认时数据的编码方式是‘utf-8’,但是这组数据使用的是‘GBK’,所以需要加入
encoding
参数,最后数据已经成功导入了,从数据的随机抽样中可以看到数据主要包括九个特征和一个序号列,这九个特征分别是:患者ID,性别,年龄,是否已婚,血型,民族,工作,省份,城市,似乎这些特征与我们要分析的鼻咽癌关系并不是很大,我们先研究研究他们。
首先我们在不修改任何数据的前提下了解熟悉一下这些数据,首先我们先来看看性别:
df.SEX.value_counts().iloc[:10]
男性 509
女性 150
Name: SEX, dtype: int64
df.SEX.value_counts().iloc[:10].plot(kind='barh')

似乎大多数鼻咽癌患者都是男性,我猜测这可能是与男性吸烟人数较多有关,我们再来看看年龄:
df.AGE.value_counts().iloc[:10]
46 31
49 28
45 25
42 24
51 24
43 24
44 24
48 23
40 22
39 22
Name: AGE, dtype: int64
df.groupby('AGE').size().plot(kind='bar')

df.AGE.describe()
count 659.000000
mean 44.817906
std 11.324191
min 5.000000
25% 37.500000
50% 45.000000
75% 52.000000
max 71.000000
Name: AGE, dtype: float64
从上面的分析和统计图中可以看出,从年龄最小 5 岁到年龄最大 71 岁都有人患鼻咽癌,但是患者年龄主要集中在 45 岁左右。
下面我们再来看一下患者的婚姻状况
df.MARRIAGE.value_counts()
已婚 622
未婚 37
Name: MARRIAGE, dtype: int64
大多数已经结婚了,不过这也与我们的患者年龄大多数集中在45岁左右有关,男士大多数在这个年龄基本上都已经结婚了。
再来看一下血型,从抽样中也可以看出有很大一部分患者的血型我们并不清楚
df.ABO_BLOOD.value_counts()
不详 375
O型 156
B型 102
AB型 25
A型 1
Name: ABO_BLOOD, dtype: int64
在上面的分析中可以观察到,在血型已知的患者中,A型血的人很少只有 1 人,O 型与 B 型血的人很多都有一百多人。
df.NATION.value_counts()
汉族 659
Name: NATION, dtype: int64
全部都是汉族人,我们再来看一下患者的职业分布有什么特点:
df.JOB.value_counts()
职员 259
无业人员 104
农民 87
其他 77
个体经营者 37
退(离)休人员 32
国家公务员 24
学生 17
专业技术人员 14
工人 8
Name: JOB, dtype: int64
大多数是职员,无业人员与农民患者也较多,最后我们再来看一下患者的地理分布情况
df.CITY.value_counts().head(10)
广州市 68
深圳市 48
惠州市 41
东莞市 30
佛山市 29
阳江市 20
清远市 19
河源市 17
肇庆市 17
汕头市 13
Name: CITY, dtype: int64
从上面的分析中可以看到患者大多数来自南方各城市,也有少数来自北方

2. 药物使用情况分析
药物使用情况分布在了三个文件中,我们首先将他们全部导入:
df2 = pd.read_csv("D:\jupyter\医疗数据建模\data\medicine.csv", encoding='GBK')
df3 = pd.read_csv("D:\jupyter\医疗数据建模\data\medicine2.csv", encoding='GBK')
df4 = pd.read_csv("D:\jupyter\医疗数据建模\data\medicine3.csv", encoding='GBK')
df2.sample(10)

df2.CHEMOTHERAPY_PRESCRIBED_DRUG.value_counts().head(10)
TC 297
GP 279
PF 222
TPF 155
TP 121
DDP 75
ABX+DDP 50
希罗达 49
吉西他滨 44
DP 43
Name: CHEMOTHERAPY_PRESCRIBED_DRUG, dtype: int64
df2.CHEMOTHERAPY_PRESCRIBED_DRUG.value_counts().head(10).plot(kind='bar')

从上图可以初步分析得到药物 TC GP PF 使用的较多。但是从抽样的数据中也可以看出,在我们的数据中有很多的缩写,还有一些复合方案,这使得我们的分析有些不准确,我们以后会解决这个问题。
网友评论