12345678910111213141516171819202122232425262728293031323334353637 |
- 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)
|