import requests import pandas as pd url = 'http://itil.jiayuepowertech.com:9958/itil/api/power-limitation' def get_station_info(timeBegin, timeEnd): url_f = url + '?timeBegin=' + timeBegin + '&timeEnd=' + timeEnd res = requests.get(url_f).json() ele_info = list(filter(lambda x: x['stationCode'] == 'J00557', res['data'])) return ele_info def cleaning_powers(power, ele_info): power = power.copy() start = len(power) print("限电清洗前,有{}条".format(start)) for ele in ele_info: begin = ele['timeBegin'] end = ele['timeEnd'] ele_limits = power[begin: end].index.to_list() if len(ele_limits) > 0: print("清洗时段:{}-{}".format(ele_limits[0], ele_limits[-1])) power.drop(ele_limits, inplace=True) print("限电清洗后,有{}条, 一共清洗了{}条".format(len(power), start-len(power))) return power if __name__ == '__main__': power = pd.read_csv('./557/power.csv', parse_dates=['C_TIME'], index_col='C_TIME') dq = pd.read_csv('./557/dq.csv', parse_dates=['C_TIME']) ele_info = get_station_info('2023-01', '2023-10-31') power_filter = cleaning_powers(power, ele_info) power_filter.to_csv('./557/power_filter.csv') power_able = pd.merge(power, dq, on='C_TIME') power_able['error'] = round(power_able['ABLE'] - power_able['C_FP_VALUE'], 3) power_able.to_csv('./557/power_able.csv', index=False)