因为实验需要处理大量的数据,便考虑进行自动生成,结果如下
代码如下
import time
import random
province=['河北','山西','辽宁','吉林','黑龙江','江苏','浙江','安徽',
'福建','江西','山东','河南','湖北','湖南','广东','海南',
'四川','贵州','云南','陕西','甘肃','青海','台湾','内蒙古',
'广西','西藏','宁夏','新疆','北京','天津',
'上海','重庆','香港','澳门']
sex=['男','女']
ill=['是','否']
a1=(2020,1,1,0,0,0,0,0,0) #设置开始日期时间元组(1976-01-01 00:00:00)
a2=(2022,3,31,23,59,59,0,0,0) #设置结束日期时间元组(1990-12-31 23:59:59)
start=time.mktime(a1) #生成开始时间戳
end=time.mktime(a2) #生成结束时间戳
def productDate(start, end):
t = random.randint(start, end) # 在开始和结束时间戳中随机取出一个
date_touple = time.localtime(t) # 将时间戳生成时间元组
date = time.strftime("%Y-%m-%d", date_touple) # 将时间元组转成格式化字符串(1976-05-21)
return date
def productProvince(province):
t = random.randint(0,33)
provin=province[t]
return provin
def productAge():
age = random.randint(10,80)
return age
def productSex(sex):
t = random.randint(0,1)
return sex[t]
def productOtherIll(ill):
t = random.randint(0,1)
return ill[t]
def productCured(ill):
t = random.randint(0,1)
return ill[t]
print(len(province))
# 最终数据
data=[]
# 单条数据
single=[]
# print('年龄','性别','地区','发现日期','是否有其他慢性病','是否康复')
for j in range(1000000): #生成1000000条数据
date=productDate(start, end)
provin=productProvince(province);
age=productAge();
se=productSex(sex);
i=productOtherIll(ill)
c=productCured(ill)
single=[age,se,provin,date,i,c]
data.append(single)
print(j)
print(data)
result = open('data.xls', 'w', encoding='gbk')
result.write('年龄\t性别\t地区\t发现日期\t是否有其他慢性病\t是否康复\n')
for m in range(len(data)):
for n in range(len(data[m])):
result.write(str(data[m][n]))
result.write('\t')
result.write('\n')
result.close()