根据用户特征生成用户的体力值
import xlrd
import numpy as np
import xlwt
data=xlrd.open_workbook("D:/PCstudy/data/Question_reults.xlsx")
table = data.sheets()[0]#选择第0张表
nrows = table.nrows # 行数
ncols = table.ncols # 列数
datamatrix = [] # 构造列表
for i in range(nrows):
rows = table.row_values(i) #获取第i行的内容
datamatrix.append(rows) #写入数据
'''
打印列表:
for i in range(nrows):
print(datamatrix[i])
'''
power0 = 10 #初始体力值为10
for i in range(nrows):
power0 = 20 # 初始体力值为10,最高22,最低4
if i==0:
continue
else:
#对于第i个用户
for j in range(ncols):
if j==1: # 年龄
age=datamatrix[i][j]
if age == 0: # 1-15岁
power0-=2
elif age == 1: # 16-26岁
power0+=2
elif age == 2: # 27-37岁
power0+=4
elif age == 3: #38-48岁
power0+=2
elif age == 4: # 49-69岁
power0-=2
else:
power0-=4
elif j==2: #性别
sex = datamatrix[i][j]
if sex == 1: #男
power0+=4
elif j==23: #职业
stulv = datamatrix[i][j]
if stulv == "在校学生":
power0+=4
elif stulv == "教育工作者":
power0+=2
elif stulv == "政府\\机关干部\\公务员":
power0+=2
elif stulv == "外资企业从业者":
power0+=3
elif stulv == "金融行业从业者":
power0-=1
elif stulv == "互联网行业从业者":
power0-=2
elif stulv == "自由职业者\\自媒体":
power0+=2
elif stulv == "个体经营\\承包商":
power0+=3
elif stulv == "其他管理工人\\职员":
power0+=1
elif stulv == "农林牧渔劳动者":
power0+=3
elif stulv == "退休":
power0+=1
else:
power0+=1
#print(power0)
datamatrix[i].append(power0)
#增加体力值
ncols+=1
datamatrix[0].append("体力值")
for i in range(nrows):
print(datamatrix[i])
#保存到excel
workbook=xlwt.Workbook(encoding='utf-8')#创建一个excel文件
booksheet=workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)#创建sheet工作表
for i,row in enumerate(datamatrix):
for j,col in enumerate(row):
booksheet.write(i,j,col)
workbook.save('D:/PCstudy/data/Question_reults_end.xls')#保存文件