import pandas as pd import os path = '直接复制文件夹地址' folder_path = os.path.normpath(path) def get_min_folders(folder_path): min_folders = [] # 遍历文件夹及其子文件夹 for root, dirs, files in os.walk(folder_path): for dir_name in dirs: dir_name = os.path.join(root, dir_name) min_folders.append(dir_name) return min_folders def get_file_paths(folder_path): file_paths = [] time = [0,24,48,72] def sort_files_by_number(file_pathes): # 自定义比较函数,根据文件名中的数字部分进行排序 def get_number(file_path): # 提取文件名中的数字部分 numbers = [0, 24, 48, 72] file_name = os.path.basename(file_path) for num in numbers: if str(num) in file_name: return num # 使用比较函数对文件列表进行排序 sorted_pathes = sorted(file_pathes, key=get_number) return sorted_pathes # 遍历文件夹下的所有文件 for file_name in os.listdir(folder_path): # 检查文件是否为 XLSX 格式 if file_name.endswith('.xlsx'): # 检查文件名中是否包含指定数字 for num in time: if str(num) in file_name: file_paths.append(os.path.join(folder_path, file_name)) time.remove(num) if len(time) == 0: break # 根据文件大小排序 return sort_files_by_number(file_paths) def get_table(file_path): df= pd.read_excel(file_path) table = df.loc[9:16, '检测结果':'Unnamed: 12'] table.set_index('检测结果', inplace=True) table.rename(columns={'Unnamed: 1':'1', 'Unnamed: 2':'2', 'Unnamed: 3': '3', 'Unnamed: 4': '4', 'Unnamed: 5': '5', 'Unnamed: 6': '6', 'Unnamed: 7': '7', 'Unnamed: 8': '8', 'Unnamed: 9': '9', 'Unnamed: 10': '10', 'Unnamed: 11': '11', 'Unnamed: 12': '12'}, inplace=True) return table def get_series(table): blank = table['2'][1:7].mean() data = table - blank result = pd.Series(dtype='float64') for i in range(6): a = str(i + 3) b = data[a]['B':'G'] result = pd.concat([result, b], ignore_index=True) return result def get_data(folder_path): data = pd.DataFrame(columns=['0H','24H','48H','72H']) file_paths = get_file_paths(folder_path) for file_path,time in zip(file_paths,['0H','24H','48H','72H']): table = get_table(file_path) series = get_series(table) data[time]=series data = data.T.round(4) return data min_folders = get_min_folders(folder_path) print('共检索到%s个文件夹,正在生成相应汇总数据:'%len(min_folders)) for min_folder in min_folders: result = min_folder + '\\汇总.xlsx' if os.path.exists(result): print('该文件已存在', result) continue else: data = get_data(min_folder) data.to_excel(result) print('已生成:', result)
MTT自动统计数据
最新推荐文章于 2025-05-19 20:18:50 发布