import os import pandas as pd # 定义文件夹路径 def data_get(folder_path, algo_pack_param): folder_path1 = f"{folder_path}/1" folder_path2 = f"{folder_path}/2" # 获取文件夹中的所有文件和文件夹 all_files1 = os.listdir(folder_path1) all_files2 = os.listdir(folder_path2) all_data = pd.DataFrame() for file in all_files1: df = pd.read_excel(f"{folder_path1}/{file}") if not df.empty: all_data = all_data.append(df, ignore_index=True) for file in all_files2: df = pd.read_excel(f"{folder_path2}/{file}") if not df.empty: all_data = all_data.append(df, ignore_index=True) try: all_data['time'] = pd.to_datetime(all_data['time'], format='%Y-%m-%d %H:%M:%S') except: mask = all_data['time'].apply(lambda x: isinstance(x, str)) all_data = all_data[~mask] all_data['time'] = pd.to_datetime(all_data['time'], format='%Y-%m-%d %H:%M:%S') all_data.sort_values(by=['time'], inplace=True) #数据处理 CellVoltNums = len([col for col in df.columns if 'vol' in col])-6 CellTempNums = len([col for col in df.columns if 'temp' in col])-3 # CellVoltNums=int(algo_pack_param['CellVoltTotalCount']) # CellTempNums = int(algo_pack_param['CellTempTotalCount']) cellvolt_name=['cell_voltage'+str(x) for x in range(1, CellVoltNums+1)] celltemp_name=['cell_temp'+str(x) for x in range(1, CellTempNums+1)] all_data.columns = ['id','time','time1','pack_volt','pack_crnt','pack_soc'] + cellvolt_name + celltemp_name + \ ['diff_vol','cell_volt_max','max_vol_num','cell_volt_min','min_vol_num','diff_temp','cell_temp_max', 'max_temp_num','odo','insulation_resistance','speed','bms_sta','dcdc'] all_data['cell_temp_min'] = all_data[celltemp_name].min(axis=1) all_data['pack_volt'] = all_data['pack_volt']/1000 all_data['pack_crnt'] = all_data['pack_crnt']/1000 return all_data, cellvolt_name, celltemp_name