T85_code/data_extract.ipynb

56 KiB
Raw Permalink Blame History

In [1]:
import pandas as pd
import os
In [2]:
files_old = [x for x in os.listdir('./new_data/') if x.endswith('xls') and '经济性' in x]
files_new = [x for x in os.listdir('./火电20230313/火电20230313F/') if '经济性' in x]
In [3]:
data = pd.read_excel(f'./new_data/{files_old[0]}', header=[3,4,5])
In [4]:
cols = [''.join([x for x in y if 'Unnamed' not in x]) for y in data.columns]
cols
Out[4]:
['序号',
 '机组编号',
 '时间',
 '发电量(万kWh)',
 '供电量(万kWh)',
 '标煤量t',
 '发电用标煤量t',
 '供热用标煤量t',
 '利用小时(h)',
 '平均负荷(MW)',
 '出力系数(%)',
 '出力系数(%)',
 '出力系数(%)',
 '工业供热量',
 '工业热电比(%)',
 '采暖供热量',
 '采暖热电比(%)',
 '总热电比(%)',
 '总供热量',
 '供热煤耗',
 '给水泵汽轮机总耗热量',
 '供电煤耗gce/(kWh)',
 '综合厂用电率(%)',
 '发电厂用电率(%)',
 '供热厂用电率(%)',
 '非生产厂用电率(%)',
 '最新THA工况二类修正后汽机热耗率kJ/KWh',
 '点火用油(kg/万kWh)',
 '助燃用油(kg/万kWh)',
 '主蒸汽压力(MPa)',
 '主蒸汽温度(℃)',
 '再热蒸汽温度(℃)',
 '高加投入率(%)',
 '给水温度(℃)',
 '真空严密性V(Pa/min)',
 '真空度(%)',
 '凝汽器端差(℃)',
 '凝结水过冷度(℃)',
 '发电补给水率(%)',
 '发电综合耗水率',
 '排烟温度(℃)',
 '飞灰含碳量(%)',
 '空预器漏风率(%)',
 '过热器减温水量(t/h)',
 '再热器减温水量(t/h)',
 '入厂煤低位热值(kJ/kg)',
 '入炉煤低位热值(kJ/kg)',
 '燃煤挥发份Var(%)',
 '燃煤灰份Aar(%)',
 '燃煤低位热值Qar,net(kJ/kg)',
 '燃煤硫份Sar(%)',
 '锅炉专业主要辅机耗电率 送风机耗电率(%)',
 '锅炉专业主要辅机耗电率 引风机耗电率(%)',
 '锅炉专业主要辅机耗电率 一次风机耗电率(%)',
 '锅炉专业主要辅机耗电率 炉水泵耗电率(%)',
 '锅炉专业主要辅机耗电率 给煤机耗电率(%)',
 '锅炉专业主要辅机耗电率 磨煤机耗电率(%)',
 '锅炉专业主要辅机耗电率 电除尘器耗电率(%)',
 '锅炉专业主要辅机耗电率 除灰系统耗电率(%)',
 '汽机专业主要辅机耗电率 凝结水泵耗电率(%)',
 '汽机专业主要辅机耗电率 前置泵耗电率(%)',
 '汽机专业主要辅机耗电率 电动给水泵耗电率(%)',
 '汽机专业主要辅机耗电率 循环水泵耗电率(%)',
 '汽机专业主要辅机耗电率 空冷风机耗电率(%)',
 '汽机专业主要辅机耗电率 热网循环水泵耗电率(%)',
 '环保专业耗电率 脱硫系统耗电率(%)',
 '环保专业耗电率 脱销系统耗电率(%)',
 '输煤专业耗电率输煤系统耗电率(%)',
 '化学系统耗电率  (%)',
 '化学系统耗电率  (%)']
In [5]:
data_list = list()
for file in files_old:
    data = pd.read_excel(f'./new_data/{file}', header=[3,4,5])
    data.columns = cols
    plant = file.split('-')[0]
    data['时间'] = data['时间'].astype(str)
    use_data = data[~data['时间'].str.contains('半年')].copy()
    use_data['电厂名称'] = plant
    data_list.append(use_data)
In [6]:
for file in files_new:
    data = pd.read_excel(f'./火电20230313/火电20230313F/{file}', header=[3,4,5])
    data.columns = cols
    plant = file.split('-')[0]
    data['时间'] = data['时间'].astype(str)
    use_data = data[~data['时间'].str.contains('半年')].copy()
    use_data['电厂名称'] = plant
    data_list.append(use_data)
In [7]:
run_data = pd.concat(data_list, axis=0)
In [8]:
run_data.drop(columns=['序号'], inplace=True)
In [10]:
run_data.drop_duplicates(inplace=True)
run_data.reset_index(inplace=True, drop=True)
In [11]:
run_data.shape
Out[11]:
(17616, 70)
In [12]:
run_data_max = run_data.groupby(['电厂名称', '机组编号', '时间']).max().reset_index()

机组信息

In [13]:
old_units = [x for x in os.listdir('./new_data/') if '电厂机组' in x]
new_units = [x for x in os.listdir('./火电20230313/火电20230313/') if '电厂机组' in x]
new_units[:5]
Out[13]:
['中国中信集团公司-32020-电厂机组数据查询-20230313.xls',
 '中国中煤能源集团有限公司-34027-电厂机组数据查询-20230313.xls',
 '中国华电集团有限公司-21060-电厂机组数据查询-20230313.xls',
 '中国华能集团有限公司-17021-电厂机组数据查询-20230313.xls',
 '中国大唐集团有限公司-61005-电厂机组数据查询-20230313.xls']
In [14]:
unit_samples = pd.read_excel(f'./new_data/{old_units[0]}', header=[3,4])
unit_cols = [''.join([x for x in y if 'Unnamed' not in x]) for y in unit_samples.columns]
unit_cols
Out[14]:
['序号',
 '企业编码',
 '电厂名称',
 '简称',
 '机组编号',
 '铭牌容量 (MW)',
 '投产时间',
 '机组类型',
 '参数分类',
 '所处地区',
 '机组产地',
 '锅炉制造厂家',
 '汽轮机制造厂家',
 '发电机制造厂家',
 '主变压器制造厂家',
 '二级公司',
 '所属集团',
 '所属电网',
 '所属电网']
In [15]:
unit_list = list()
for file in old_units:
    data = pd.read_excel(f'./new_data/{file}', header=[3,4])
    data.columns = unit_cols
    unit_list.append(data)
In [16]:
# unit_list = list()
for file in new_units:
    data = pd.read_excel(f'./火电20230313/火电20230313/{file}', header=[3,4])
    data.columns = unit_cols
    unit_list.append(data)
In [17]:
units_df = pd.concat(unit_list).drop(columns=['序号', '所属电网']).drop_duplicates().reset_index(drop=True)
In [18]:
units_df[units_df['电厂名称']=='国能浙江北仑第一发电有限公司']
Out[18]:
企业编码 电厂名称 简称 机组编号 铭牌容量 (MW) 投产时间 机组类型 参数分类 所处地区 机组产地 锅炉制造厂家 汽轮机制造厂家 发电机制造厂家 主变压器制造厂家 二级公司 所属集团
1388 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 2 630.0 1994-11-18 纯凝式 亚临界 浙江省 进口 加拿大巴布科克威尔科克斯公司 法国阿尔斯通 法国阿尔斯通 法国阿尔斯通公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1389 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 1 630.0 1991-10-30 纯凝式 亚临界 浙江省 进口 美国燃烧工程公司 日本东芝公司 日本东芝公司 日本东芝公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1390 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 3 660.0 2000-9-28 纯凝式 亚临界 浙江省 进口 日本石川岛播磨株式会社 日本东芝公司 日本东芝公司 日本东芝公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1391 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 7 1000.0 2009-6-2 纯凝式 超超临界 浙江省 国产 东方锅炉厂(东锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 保定天威保变电气股份有限公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1392 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 6 1050.0 2008-12-20 纯凝式 超超临界 浙江省 国产 东方锅炉厂(东锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 保定天威保变电气股份有限公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1393 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 5 660.0 2000-7-28 纯凝式 亚临界 浙江省 进口 日本石川岛播磨株式会社 日本东芝公司 日本东芝公司 日本东芝公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1394 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 4 660.0 2000-7-8 纯凝式 亚临界 浙江省 进口 日本石川岛播磨株式会社 日本东芝公司 日本东芝公司 日本东芝公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
1891 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 7 1050.0 2009-6-2 纯凝式 超超临界 浙江省 国产 东方锅炉厂(东锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 保定天威保变电气股份有限公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
In [19]:
units_df.shape
Out[19]:
(1934, 16)
In [20]:
units_df[(units_df['电厂名称']=='陕西渭河发电有限公司')&(units_df['机组编号']==3)]
Out[20]:
企业编码 电厂名称 简称 机组编号 铭牌容量 (MW) 投产时间 机组类型 参数分类 所处地区 机组产地 锅炉制造厂家 汽轮机制造厂家 发电机制造厂家 主变压器制造厂家 二级公司 所属集团
1812 61022 陕西渭河发电有限公司 陕西省投咸阳渭河 3 320.0 1992-7-1 纯凝式 亚临界 陕西省 国产 上海锅炉厂(上锅) 哈尔滨汽轮机厂(哈汽) 哈尔滨电机厂(哈电) 沈变 NaN 陕西投资集团有限公司
1928 61022 陕西渭河发电有限公司 陕西省投咸阳渭河 3 320.0 1992-7-1 纯凝式 亚临界 陕西省 国产 上海锅炉厂(上锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 西安西电变压器厂 NaN 陕西投资集团有限公司
In [21]:
units_df[(units_df['电厂名称']=='国能浙江北仑第一发电有限公司')&(units_df['机组编号']==7)&(units_df['铭牌容量 (MW)']==1000.0)]
Out[21]:
企业编码 电厂名称 简称 机组编号 铭牌容量 (MW) 投产时间 机组类型 参数分类 所处地区 机组产地 锅炉制造厂家 汽轮机制造厂家 发电机制造厂家 主变压器制造厂家 二级公司 所属集团
1391 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 7 1000.0 2009-6-2 纯凝式 超超临界 浙江省 国产 东方锅炉厂(东锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 保定天威保变电气股份有限公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
In [22]:
drop_units = units_df[(units_df['电厂名称']=='国能浙江北仑第一发电有限公司')&(units_df['机组编号']==7)&(units_df['铭牌容量 (MW)']==1000.0)].index.values
units_df.drop(index=drop_units, inplace=True)
In [23]:
units_df[(units_df['电厂名称']=='国能浙江北仑第一发电有限公司')&(units_df['机组编号']==7)]
Out[23]:
企业编码 电厂名称 简称 机组编号 铭牌容量 (MW) 投产时间 机组类型 参数分类 所处地区 机组产地 锅炉制造厂家 汽轮机制造厂家 发电机制造厂家 主变压器制造厂家 二级公司 所属集团
1891 33008 国能浙江北仑第一发电有限公司 国家能源浙江北仑 7 1050.0 2009-6-2 纯凝式 超超临界 浙江省 国产 东方锅炉厂(东锅) 上海汽轮机厂(上汽) 上海电机厂(上电) 保定天威保变电气股份有限公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
In [24]:
units_max = units_df.groupby(['电厂名称', '机组编号', '投产时间']).max().reset_index()
D:\miniconda3\envs\py37\lib\site-packages\ipykernel_launcher.py:1: FutureWarning: Dropping invalid columns in DataFrameGroupBy.max is deprecated. In a future version, a TypeError will be raised. Before calling .max, select only columns which should be valid for the function.
  """Entry point for launching an IPython kernel.
In [25]:
units_max.shape
Out[25]:
(1926, 13)
In [26]:
units_max
Out[26]:
电厂名称 机组编号 投产时间 企业编码 简称 铭牌容量 (MW) 机组类型 参数分类 所处地区 机组产地 锅炉制造厂家 二级公司 所属集团
0 万方发电厂(焦作爱依斯万方电力有限公司) 1 1997-8-17 41020 河南焦作万方 125.0 纯凝式 超高压 河南省 国产 上海锅炉厂(上锅) NaN 其他
1 万方发电厂(焦作爱依斯万方电力有限公司) 2 1998-7-8 41020 河南焦作万方 125.0 纯凝式 超高压 河南省 国产 上海锅炉厂(上锅) NaN 其他
2 三河发电有限责任公司 1 1999-12-17 13032 国家能源河北三河 350.0 供热式 亚临界 河北省 进口 日本三菱公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
3 三河发电有限责任公司 2 2000-4-2 13032 国家能源河北三河 350.0 供热式 亚临界 河北省 进口 日本三菱公司 北京国华电力有限责任公司 国家能源投资集团有限责任公司
4 三河发电有限责任公司 3 2007-8-31 13032 国家能源河北三河 315.0 供热式 亚临界 河北省 国产 东方锅炉厂(东锅) 北京国华电力有限责任公司 国家能源投资集团有限责任公司
... ... ... ... ... ... ... ... ... ... ... ... ... ...
1921 黔桂发电有限责任公司 1 1994-1-16 74009 金元贵州盘县 200.0 纯凝式 超高压 贵州省 国产 东方锅炉厂(东锅) 贵州金元电力投资股份有限公司 国家电力投资集团有限公司
1922 黔桂发电有限责任公司 2 1994-10-26 74009 金元贵州盘县 200.0 纯凝式 超高压 贵州省 国产 东方锅炉厂(东锅) 贵州金元电力投资股份有限公司 国家电力投资集团有限公司
1923 黔桂发电有限责任公司 3 1996-10-14 74009 金元贵州盘县 200.0 纯凝式 超高压 贵州省 国产 东方锅炉厂(东锅) 贵州金元电力投资股份有限公司 国家电力投资集团有限公司
1924 黔桂发电有限责任公司 4 2001-4-9 74009 金元贵州盘县 200.0 纯凝式 超高压 贵州省 国产 东方锅炉厂(东锅) 贵州金元电力投资股份有限公司 国家电力投资集团有限公司
1925 黔桂发电有限责任公司 5 2001-8-25 74009 金元贵州盘县 200.0 纯凝式 超高压 贵州省 国产 东方锅炉厂(东锅) 贵州金元电力投资股份有限公司 国家电力投资集团有限公司

1926 rows × 13 columns

汽轮机数据

In [27]:
old_steam = [x for x in os.listdir('./new_data/') if '汽轮机' in x]
steam_data = [x for x in os.listdir('./火电20230313/火电20230313/') if '汽轮机' in x]
steam_data
Out[27]:
['中国中信集团公司-32020-汽轮机数据查询-20230313.xls',
 '中国中煤能源集团有限公司-34027-汽轮机数据查询-20230313.xls',
 '中国华电集团有限公司-21060-汽轮机数据查询-20230313.xls',
 '中国华能集团有限公司-17021-汽轮机数据查询-20230313.xls',
 '中国大唐集团有限公司-61005-汽轮机数据查询-20230313.xls',
 '中国铝业股份有限公司-64011-汽轮机数据查询-20230313.xls',
 '中国长江三峡集团公司-42011-汽轮机数据查询-20230313.xls',
 '其他-47001-汽轮机数据查询-20230313.xls',
 '内蒙古源源能源集团有限责任公司-15050-汽轮机数据查询-20230313.xls',
 '内蒙古能源发电投资集团有限公司-15047-汽轮机数据查询-20230313.xls',
 '北京能源集团有限责任公司-64009-汽轮机数据查询-20230313.xls',
 '华润(集团)有限公司-13008-汽轮机数据查询-20230313.xls',
 '协鑫集团有限公司-32036-汽轮机数据查询-20230313.xls',
 '国家开发投资公司-37009-汽轮机数据查询-20230313.xls',
 '国家开发投资集团有限公司-16014-汽轮机数据查询-20230313.xls',
 '国家电力投资集团有限公司-21018-汽轮机数据查询-20230313.xls',
 '国家能源投资集团有限责任公司-23012-汽轮机数据查询-20230313.xls',
 '安徽省能源集团有限公司-34003-汽轮机数据查询-20230313.xls',
 '山西国际能源集团有限公司-14088-汽轮机数据查询-20230313.xls',
 '山西焦煤集团有限公司-14099-汽轮机数据查询-20230313.xls',
 '广东省能源集团有限公司-71003-汽轮机数据查询-20230313.xls',
 '广州发展集团股份有限公司-71021-汽轮机数据查询-20230313.xls',
 '新疆天山电力股份有限公司-65004-汽轮机数据查询-20230313.xls',
 '晋能控股电力集团-14022-汽轮机数据查询-20230313.xls',
 '江苏省国信集团有限公司-32015-汽轮机数据查询-20230313.xls',
 '江西省投资集团有限公司-44020-汽轮机数据查询-20230313.xls',
 '河北建设投资集团有限责任公司-13056-汽轮机数据查询-20230313.xls',
 '河南投资集团有限公司-41014-汽轮机数据查询-20230313.xls',
 '浙江省能源集团有限公司-33001-汽轮机数据查询-20230313.xls',
 '深圳能源集团股份有限公司-71022-汽轮机数据查询-20230313.xls',
 '甘肃省电力投资集团有限责任公司-62006-汽轮机数据查询-20230313.xls',
 '申能股份有限公司-35016-汽轮机数据查询-20230313.xls',
 '陕西投资集团有限公司-61040-汽轮机数据查询-20230313.xls',
 '陕西榆林能源集团有限公司-61041-汽轮机数据查询-20230313.xls',
 '陕西煤业化工集团有限责任公司-43014-汽轮机数据查询-20230313.xls']
In [28]:
steam_samples = pd.read_excel(f'./new_data/{old_steam[0]}', header=[3,4,5])
steam_cols = [''.join([x for x in y if 'Unnamed' not in x]) for y in steam_samples.columns]
steam_cols
Out[28]:
['序号',
 '企业编码',
 '电厂名称',
 '简称',
 '机组编号',
 '制造厂家',
 '型号',
 '出厂编号',
 '出厂编号',
 '汽轮机缸效率高压缸(%',
 '汽轮机缸效率中压缸(%',
 '汽轮机缸效率低压缸(%',
 '最大连续出力T-MCRMW',
 '额定主蒸汽压力MPa',
 '额定主蒸汽温度(℃)',
 '额定再热汽温度(℃)',
 '设计给水温度(℃)',
 '凝汽式机组保证热耗率kJ/kWh',
 '凝汽式汽机设计背压kPa',
 '供热式机组保证热耗率额定供热工况kJ/kWh',
 '供热式机组保证热耗率纯凝工况kJ/kWh',
 '供热式汽机设计背压供热工况kPa',
 '供热式汽机设计背压纯凝工况kPa',
 '设计供热抽汽压力工业MPa',
 '设计供热抽汽压力采暖MPa',
 '设计供热抽汽温度工业(℃)',
 '设计供热抽汽温度采暖(℃)',
 '设计最大供热抽汽流量工业t/h',
 '设计最大供热抽汽流量采暖t/h',
 '凝结水泵制造厂家',
 '凝结水泵型号',
 '凝结水泵电机电压V',
 '凝结水泵电机功率kW',
 '凝结水泵凝结水泵流量t/h',
 '循环水泵制造厂家',
 '循环水泵型号',
 '循环水泵电机电压V',
 '循环水泵电机功率kW',
 '循环水泵循环水泵流量t/h',
 '给水泵汽轮机制造厂',
 '给水泵汽轮机型号',
 '给水泵汽轮机出力比(%)',
 '给水泵汽轮机台数(台)',
 '给水泵汽轮机额定功率KW',
 '给水泵汽轮机内效率(%)',
 '给水泵汽轮机额定进汽压力MPa',
 '给水泵汽轮机额定排汽压力kPa',
 '给水泵汽轮机额定进汽温度(℃)',
 '给水泵汽轮机额定排汽温度(℃)',
 '给水泵汽轮机额定蒸汽流量t/h',
 '电动给水泵制造厂',
 '电动给水泵型号',
 '电动给水泵出力比(%',
 '电动给水泵台数(台)',
 '电动给水泵给水泵流量t/h',
 '电动给水泵给水泵压力MPa',
 '旁路系统型式',
 '旁路系统旁路蒸汽量比率(%',
 '冷凝器制造厂家',
 '冷凝器型号',
 '冷凝器型式',
 '循环水介质及比例地表水(%',
 '循环水介质及比例地下水(%',
 '循环水介质及比例中水(%',
 '循环水介质及比例海水(%',
 '循环水循环方式',
 '循环冷却倍率(%',
 '开式循环水提升高度m',
 '空冷机组出力受阻背压kPa',
 '空冷机组出力受阻背压kPa.1']
In [29]:
steam_list = list()
for file in old_steam:
    data = pd.read_excel(f'./new_data/{file}', header=[3, 4, 5])
    data.columns = steam_cols
    steam_list.append(data)
In [30]:
# unit_list = list()
for file in steam_data:
    data = pd.read_excel(f'./火电20230313/火电20230313/{file}', header=[3,4,5])
    data.columns = steam_cols
    steam_list.append(data)
In [31]:
steam_df = pd.concat(steam_list).drop(columns=['序号', '空冷机组出力受阻背压kPa.1']).drop_duplicates().reset_index(drop=True)
In [32]:
steam_max = steam_df.groupby(['电厂名称', '机组编号']).max().reset_index()
D:\miniconda3\envs\py37\lib\site-packages\ipykernel_launcher.py:1: FutureWarning: Dropping invalid columns in DataFrameGroupBy.max is deprecated. In a future version, a TypeError will be raised. Before calling .max, select only columns which should be valid for the function.
  """Entry point for launching an IPython kernel.

锅炉数据

In [33]:
old_boiler = [x for x in os.listdir('./new_data/') if '锅炉' in x]
new_boiler = [x for x in os.listdir('./火电20230313/火电20230313/') if '锅炉' in x]
new_boiler
Out[33]:
['中国中信集团公司-32020-锅炉数据查询-20230313.xls',
 '中国中煤能源集团有限公司-34027-锅炉数据查询-20230313.xls',
 '中国华电集团有限公司-21060-锅炉数据查询-20230313.xls',
 '中国华能集团有限公司-17021-锅炉数据查询-20230313.xls',
 '中国大唐集团有限公司-61005-锅炉数据查询-20230313.xls',
 '中国铝业股份有限公司-64011-锅炉数据查询-20230313.xls',
 '中国长江三峡集团公司-42011-锅炉数据查询-20230313.xls',
 '其他-47001-锅炉数据查询-20230313.xls',
 '内蒙古源源能源集团有限责任公司-15050-锅炉数据查询-20230313.xls',
 '内蒙古能源发电投资集团有限公司-15047-锅炉数据查询-20230313.xls',
 '北京能源集团有限责任公司-64009-锅炉数据查询-20230313.xls',
 '华润(集团)有限公司-13008-锅炉数据查询-20230313.xls',
 '协鑫集团有限公司-32036-锅炉数据查询-20230313.xls',
 '国家开发投资公司-37009-锅炉数据查询-20230313.xls',
 '国家开发投资集团有限公司-16014-锅炉数据查询-20230313.xls',
 '国家电力投资集团有限公司-21018-锅炉数据查询-20230313.xls',
 '国家能源投资集团有限责任公司-23012-锅炉数据查询-20230313.xls',
 '安徽省能源集团有限公司-34003-锅炉数据查询-20230313.xls',
 '山西国际能源集团有限公司-14088-锅炉数据查询-20230313.xls',
 '山西焦煤集团有限公司-14099-锅炉数据查询-20230313.xls',
 '广东省能源集团有限公司-71003-锅炉数据查询-20230313.xls',
 '广州发展集团股份有限公司-71021-锅炉数据查询-20230313.xls',
 '新疆天山电力股份有限公司-65004-锅炉数据查询-20230313.xls',
 '晋能控股电力集团-14022-锅炉数据查询-20230313.xls',
 '江苏省国信集团有限公司-32015-锅炉数据查询-20230313.xls',
 '江西省投资集团有限公司-44020-锅炉数据查询-20230313.xls',
 '河北建设投资集团有限责任公司-13056-锅炉数据查询-20230313.xls',
 '河南投资集团有限公司-41014-锅炉数据查询-20230313.xls',
 '浙江省能源集团有限公司-33001-锅炉数据查询-20230313.xls',
 '深圳能源集团股份有限公司-71022-锅炉数据查询-20230313.xls',
 '甘肃省电力投资集团有限责任公司-62006-锅炉数据查询-20230313.xls',
 '申能股份有限公司-35016-锅炉数据查询-20230313.xls',
 '陕西投资集团有限公司-61040-锅炉数据查询-20230313.xls',
 '陕西榆林能源集团有限公司-61041-锅炉数据查询-20230313.xls',
 '陕西煤业化工集团有限责任公司-43014-锅炉数据查询-20230313.xls']
In [34]:
boiler_samples = pd.read_excel(f'./new_data/{old_boiler[0]}', header=[3,4])
boiler_cols = [''.join([x for x in y if 'Unnamed' not in x]) for y in boiler_samples.columns]
boiler_cols
Out[34]:
['序号',
 '企业编码',
 '电厂名称',
 '简称',
 '机组编号',
 '制造厂家',
 '型号',
 '型式',
 '最大连续出力B-MCR(t/h)',
 '设计效率(%)',
 '工质流动方式',
 ' 额定主蒸汽压力 (MPa)',
 '额再热蒸汽温度 (℃)',
 '额定再热蒸汽压力 (MPa)',
 ' 额再热蒸汽温度 (℃)',
 '额再热蒸汽温度 (℃).1',
 '点火方式',
 '燃烧方式',
 '设计燃煤种类',
 '设计燃煤灰份(收到基)(%)',
 '设计燃煤挥发份)(收到基)(%)',
 '设计燃煤低位热值收到基kJ/kg',
 '排渣方式',
 '除灰方式',
 '空预器制造厂家',
 '空预器型号',
 '空预器型式',
 '空预器设计漏风率(%)',
 '磨煤机制造厂家',
 '磨煤机型号',
 '磨煤机型式',
 '磨煤机出力比',
 '磨煤机总台数',
 '磨煤机制粉方式',
 '除尘器制造厂家',
 '除尘器型号',
 '除尘器型式',
 '除尘器除尘器设计效率(%)',
 '一次风机制造厂家',
 '一次风机型号',
 '一次风机型式',
 '一次风机最大风压(Pa)',
 '一次风机最大流量 (m3/S)',
 '一次风机电机电压(V)',
 '一次风机电机功率(KW)',
 '送风机制造厂家',
 '送风机型号',
 '送风机型式',
 '送风机最大风压(Pa)',
 '送风机  最大流量m3/S',
 '送风机电机电压V',
 '送风机电机功率KW',
 '引风机制造厂家',
 '引风机型号',
 '引风机型式',
 '引风机最大风压(Pa)',
 '引风机最大流量(m3/S',
 '引风机电机电压(V)',
 '引风机电机功率KW',
 '引风机电机功率KW.1']
In [35]:
boiler_list = list()
for file in old_boiler:
    data = pd.read_excel(f'./new_data/{file}', header=[3, 4])
    data.columns = boiler_cols
    boiler_list.append(data)
In [36]:
for file in new_boiler:
    data = pd.read_excel(f'./火电20230313/火电20230313/{file}', header=[3,4])
    data.columns = boiler_cols
    boiler_list.append(data)
In [37]:
boiler_df = pd.concat(boiler_list).drop(columns=['序号', '引风机电机功率KW.1']).drop_duplicates().reset_index(drop=True)
In [38]:
boiler_max = boiler_df.groupby(['电厂名称', '机组编号']).max().reset_index()
D:\miniconda3\envs\py37\lib\site-packages\ipykernel_launcher.py:1: FutureWarning: Dropping invalid columns in DataFrameGroupBy.max is deprecated. In a future version, a TypeError will be raised. Before calling .max, select only columns which should be valid for the function.
  """Entry point for launching an IPython kernel.
In [39]:
use_unit = units_df[units_df.columns[[1,3,4,5,6,7,8]]].drop_duplicates().set_index(['电厂名称', '机组编号'])
use_run_data = run_data_max.set_index(['电厂名称', '机组编号'])
use_steam = steam_df[steam_df.columns[[1,3,-9]]].drop_duplicates().set_index(['电厂名称', '机组编号'])
use_boiler = boiler_df.drop_duplicates().set_index(['电厂名称', '机组编号'])
In [40]:
total_data = use_unit.merge(use_steam, how='left', on=['电厂名称', '机组编号'])
In [41]:
total_data = total_data.merge(use_run_data, how='left', on=['电厂名称', '机组编号'])
In [42]:
total_data = total_data.merge(use_boiler, how='left', on=['电厂名称', '机组编号'])
In [43]:
total_data.reset_index().to_excel('./total_data.xlsx', index=False)
In [ ]: