You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.3 KiB
Python

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import pandas as pd
import os
import re
file_dir1 = r'C:\Users\鸽子\Desktop\一版结果\电压等级电量预测结果\偏差率'
file_dir2 = r'C:\Users\鸽子\Desktop\一版结果\电压等级电量预测结果\月底3天预测结果'
file_dir3 = r'C:\Users\鸽子\Desktop\一版结果\行业电量预测结果\偏差'
import numpy as np
np.set_printoptions(threshold=np.inf)
# print(os.listdir(file_dir3))
# str1 = '丽水电压等级10kv以下月底偏差率:0.00229'
#
# print(re.split('电压等级|月底偏差率:',str1))
# with open(os.path.join(file_dir3,'9月底偏差率.txt'),'r',encoding='utf-8') as f:
# lines = f.readlines()
# list_city = []
# list_industry = []
# list_loss = []
# for i in lines:
# i = re.split(':||其中', i)
# print(i)
# list_city.append(i[0][:2])
# list_industry.append(i[-2].replace(i[0][:2],''))
# list_loss.append(i[-1][:-2])
# df_level = pd.DataFrame({'城市':list_city,'行业':list_industry,'偏差':list_loss})
# # df_level.to_csv(os.path.join(file_dir3,'9月底偏差率.csv'),encoding='gbk')
# print(df_level)
file_dir = r'C:\python-project\pytorch3\浙江行业电量\浙江所有地市133行业数据'
# print(os.listdir(file_dir))
dict1 = {}
for file in os.listdir(file_dir):
df = pd.read_excel(os.path.join(file_dir,file),index_col=' stat_date ')
col_list = df.drop(columns=[i for i in df.columns if (df[i] == 0).sum() / len(df) >= 0.5]).columns
dict1[file[:2]] = col_list
print(dict1)
# print(len(df.drop(columns=[i for i in df.columns if (df[i] == 0).sum() / len(df) >= 0.5]).columns))
read_path = r'C:\Users\鸽子\Desktop\一版结果\行业电量预测结果\月底预测结果'
list1 = []
for i in os.listdir(read_path):
print(i)
data = pd.read_csv(os.path.join(read_path, i), sep='\t',header=None)
data = data[data.columns[1:]]
for j,step in enumerate(range(0, len(data), 4)):
df = data.iloc[step+1:step + 4, :]
df.columns = ['预测值', '实际值', '偏差率']
try:
df['行业'] = dict1[i[2:4]][j]
except:
pass
df['城市'] = i[2:4]
list1.append(df)
print(df)
df = pd.concat(list1,ignore_index=True)
df.to_csv('各市行业电量预测结果.csv',encoding='gbk')
print(df)