12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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
-
-
|