In [1]:
# 导入需要用到的模块

## 数值计算模块numpy。
import numpy as np
## 数据处理模块pandas。
import pandas as pd

In [2]:
# 模拟数据准备

## 模拟数据量为5W行。
length = 50000
data = pd.DataFrame()

## 模拟生成“审核状态”列。大部分为“已终审卡”,小部分为“已删除卡”。
cate = ['已删除卡', '已终审卡']
data['审核状态'] = np.random.choice(cate, p=[0.05, 0.95], size = length)

## 模拟生成“病例分类”列。大部分为“临床诊断病例”和“确诊病例”,小部分为“疑似病例”。
cate = ['临床诊断病例', '确诊病例', '疑似病例']
data['病例分类'] = np.random.choice(cate, p=[0.45, 0.45, 0.1], size = length)

## 模拟生成“病例分类2”列,大部分为“未分类”,小部分为“慢性”,极小部分为“急性”。
cate = ['急性', '慢性', '未分类']
data['病例分类2'] = np.random.choice(cate, p=[0.01, 0.1, 0.89], size = length)

## 模拟生成“疾病名称”列。模拟了十数种疾病。各疾病被模拟的可能性略有不同。
cate = ['手足口病', '流行性感冒', '水痘', '乙肝', '生殖道沙眼衣原体感染', '隐性梅毒', '淋    病', '尖锐湿疣', '其它感染性腹泻病', '其它疾病:', '病原学阳性', '流行性腮腺炎', '病原学阴性', 'Ⅰ期梅毒']
data['疾病名称'] = np.random.choice(cate, p=[0.25, 0.2, 0.15, 0.06, 0.05, 0.05, 0.05, 0.03, 0.03, 0.03, 0.03, 0.03, 0.02, 0.02], size = length)

## 模拟生成“现住地址国标”列,共计13个现住地编码,以及一个值为“不详”的编码。
cate = ['10000001','10000002','10000003','10000004','10000005','10000006','10000007','10000008','10000009','10000010','10000011','10000012','10000013','10000099']
data['现住地址国标'] = np.random.choice(cate, size = length)

## 模拟生成“病人属于”列。
cate = ['本县区', '本市其它县区', '本省其它地市', '其他省', '港澳台', '外籍']
data['病人属于'] = np.random.choice(cate, size = length)

## 模拟生成“年龄”列,从0岁到100岁中随机。
cate = pd.Series(np.arange(100)).apply(lambda x : str(x) + '岁')
data['年龄'] = np.random.choice(cate, size = length)

## 模拟生成“人群分类”列,模拟了十数种职业,各职业被模拟的可能性略有不同。
cate = ['散居儿童', '学生', '幼托儿童', '家务及待业', '工人', '离退人员', '商业服务', '其它:', '干部职员', '不详', '民工', '农民', '餐饮食品业', '医务人员', '教师']
data['人群分类'] = np.random.choice(cate, p=[0.2, 0.15, 0.1, 0.1, 0.1, 0.1, 0.1, 0.05, 0.03, 0.02, 0.01, 0.01, 0.01, 0.01, 0.01], size = length)

## 模拟生成“订正终审时间”列,从2015年12月20日开始的1800天中随机。
date =pd.date_range('20151220', periods=1800)
data['订正终审时间'] = np.random.choice(date, size=length)
### 给“订正终审时间”值加上时分秒。
data['订正终审时间'] = data['订正终审时间'].apply(lambda x : x + pd.Timedelta(days = np.random.random()))

# 保存模拟生成的数据,保存文件名为“data.xls”,表名为“data”,备用。
data.to_excel('data.xls', sheet_name='data')