从品牌网站建设到网络营销策划,从策略到执行的一站式服务
昨天写了一段用来做分层随机抽样的代码,很粗糙,不过用公司的2万名导购名单试了一下,结果感人,我觉得此刻的我已经要上天了,哈哈哈哈哈哈
代码如下:
#分层随机抽样 stratified sampling import xlrd, xlwt, time, random xl = xlrd.open_workbook(r'C:\Users\Administrator\Desktop\分层抽样.xlsx') xl_sht1 = xl.sheets()[0] xl_sht1_nrows = xl_sht1.nrows #表头 title = xl_sht1.row_values(0) #把样本写进列表 sample sample = [] for i in range(xl_sht1_nrows): sample.append(xl_sht1.row_values(i)) #打乱样本 random.shuffle(sample) #把层的内容写进列表 col col = xl_sht1.col_values(0) #对col中的内容进行计数,获得每一类的名称对应个数的字典 col_dict = {} for i in col: col_dict[i] = col_dict.get(i, 0) + 1 p = eval(input('每层抽取的比例(小数):')) #获得每一类的名称对应抽取个数的字典 col_p = {} k = 0 for i in col_dict.keys(): col_p[i] = int(round(col_dict[i] * p)) #round用来四舍五入,不加int结果会变成无数个p #开始抽样,把抽取结果写进result_l列表 result_l = [] for i in sample: if col_p.get(i[0], 0) > 0: result_l.append(i) col_p[i[0]] -= 1 #新建文档,写入结果 f = xlwt.Workbook() f_sht1 = f.add_sheet('result') n = 0 for i in title: f_sht1.write(0, n, i) n += 1 r = 1 for i in result_l: c = 0 for k in i: f_sht1.write(r, c, k) c += 1 r += 1 nowtime = time.strftime("%Y%m%d_%H%M%S", time.localtime()) f.save(r'C:\Users\Administrator\Desktop\Result_{0}.xls'.format(nowtime)) print('\n抽样成功!') input()
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图