这些天在做深度学习的时候,需要对原始数据进行预处理,所以写下了一些脚本用于对数据处理。源代码如下:
#!/usr/bin/python # -*-coding: utf-8 -*- import xlrd import xlwt import os import numpy as np filePath = u'E:\\one_year\\合并数据\\冷塔' fileDir = os.listdir(filePath) #files = [] #fileSavePath = u'E:\\one_year\\合并数据\\冷冻水泵\\5' biaotou1 = ['湿球温度(℃)A', '1#冷却塔冷却水进水温度(℃)', '1#冷却塔1#风机变频反馈', '1#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','1#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-1'] biaotou2 = ['湿球温度(℃)A', '2#冷却塔冷却水进水温度(℃)', '2#冷却塔1#风机变频反馈', '2#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','2#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-2'] biaotou3 = ['湿球温度(℃)A', '3#冷却塔冷却水进水温度(℃)', '3#冷却塔1#风机变频反馈', '3#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','3#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-3'] biaotou4 = ['湿球温度(℃)A', '4#冷却塔冷却水进水温度(℃)', '4#冷却塔1#风机变频反馈', '4#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','4#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-4'] biaotou = [] biaotou.append(biaotou1) biaotou.append(biaotou2) biaotou.append(biaotou3) biaotou.append(biaotou4) for filepath in fileDir: ###解决中文乱码问题 objectFile = filePath + r'\\' + filepath list1 = [] list2 = [] list3 = [] list4 = [] for fileName in os.listdir(objectFile): excelfile = objectFile + r'\\' + fileName print(fileName) if int(fileName[6:7]) == 1: list1.append(excelfile) if int(fileName[6:7]) == 2: list2.append(excelfile) if int(fileName[6:7]) == 3: list3.append(excelfile) if int(fileName[6:7]) == 4: list4.append(excelfile) listAll = [] listAll.append(list1) listAll.append(list2) listAll.append(list3) listAll.append(list4) tower_num = 0 for lis in listAll: tower_num = 1 + tower_num matrix = [None] * len(lis) for i in range(len(lis)): fname = lis[i] print(fname) excelFile = xlrd.open_workbook(fname) try: data = excelFile.sheet_by_name("MySheet") except: print("在文件%s中没有找到sheet1,读取文件数据失败,要不你换换表格的名字?" % fname) nrows = data.nrows ncols = data.ncols matrix[i] = [0] * (nrows - 1) for m in range(nrows - 1): matrix[i][m] = ["0"] * ncols flag = 0 for j in range(1, nrows): for k in range(0, ncols): # print(str(data.cell(j, k).value)) if (str(data.cell(j, k).value) == '\\N')or(str(data.cell(j, k).value) == (str(0.0))): flag = flag + 1 break if (str(data.cell(j, ncols - 1).value) == '\\N') or (float(data.cell(j, ncols - 1).value) < 2.0): flag = flag + 1 break if (str(data.cell(j, 2).value) == '\\N' or str(data.cell(j, 3).value) == '\\N'): flag = flag + 1 break if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) > 50.0)and (float(data.cell(j, ncols - 1).value) < 12.0): flag = flag + 1 break if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 10.0) and (float(data.cell(j, ncols - 1).value) > 3.0): flag = flag + 1 break if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 50.0) and (float(data.cell(j, ncols - 1).value) < 5.0): flag = flag + 1 break matrix[i][j - 1 - flag][k] = data.cell(j, k).value matrix[i] = np.delete(matrix[i], np.s_[(nrows - flag - 1):nrows], axis=0) #print(matrix) fileExcel = xlwt.Workbook() sheet = fileExcel.add_sheet("MySheet") # 下面是把表头写上 for i in range(0, len(biaotou[tower_num - 1])): sheet.write(0, i, biaotou[tower_num - 1][i]) # 求和前面的文件一共写了多少行 zh = 1 for i in range(len(lis)): for j in range(len(matrix[i])): for k in range(len(matrix[i][j])): sheet.write(zh, k, matrix[i][j][k]) zh = zh + 1 print("我已经将%d个文件合并成1个文件") fileSavePath = os.path.dirname(objectFile) + r'\\' +'0_'+ filepath + '月' print(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx") if not os.path.exists(fileSavePath): ###创建月份文件夹 os.makedirs(fileSavePath) fileExcel.save(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx")
- 我发现我写脚本有一个特点:就是想把一个功能写成函数的形式,然后函数之间相互调用。我觉得我缺乏顺序思想,过程思想,简单的问题不要复杂化
来源:51CTO
作者:哦飞哥
链接:https://blog.csdn.net/qq_34404196/article/details/100781980