123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/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')
|