#!/usr/bin/env python # -*- coding: utf-8 -*- # time: 2023/6/25 10:28 # file: norm.py # author: David # company: shenyang JY import os.path import numpy as np import pandas as pd import yaml class Normalize(): def __init__(self): self.mean = {} self.std = {} def normalize(self, df): """ 暂时不将C_TIME归一化 :param dfs: :return: """ if 'C_TIME' in df.columns: df.drop('C_TIME', axis=1, inplace=True) mean_dict = np.mean(df, axis=0) # 数据的均值 std_dict = np.std(df, axis=0) # 标准差 for k, v in mean_dict.to_dict().items(): self.mean[k] = round(v, 3) for k, v in std_dict.to_dict().items(): self.std[k] = round(v, 3) print("归一化参数,均值为:{},方差为:{}".format(self.mean, self.std)) def save_yml(self, yml_dict, path): cfg = {} for k, v in yml_dict.items(): cfg[k] = v with open(path, 'w') as f: yaml.safe_dump(cfg, f, default_flow_style=False) if __name__ == '__main__': norm = Normalize() p = r'F:\ligh-power\data\J00226\rp.xls' en = r'F:\ligh-power\data\J00226\envir.xls' nwp = r'F:\ligh-power\data\J00226\nwp.xls' power = pd.read_excel(p) en = pd.read_excel(en) nwp = pd.read_excel(nwp) norm.normalize(power.loc[:, ['C_VALUE']]) norm.normalize(en.loc[:, 'C_RH':'C_P']) norm.normalize(nwp.loc[:, 'C_DIRECTION10':'C_TEMPERATURE90']) norm.save_yml({'mean': norm.mean, 'std': norm.std}, path=r'F:\light-CDQ\data\J00226\norm.yaml')