尧图精选

新型煤化工行业报告:从数据清洗到成本测算的完整框架

🕒 发布时间:2026/10/1 3:43:11 📁 来源:尧图网络
简介这是一份基于2024年行业公开信息梳理的《新型煤化工行业分析报告》PPTX课件面向能源化工从业人员、行业分析师、投资研究人员以及关注绿色转型的企业管理者旨在帮助读者快速建立行业全景认知并支撑内部培训、投资评估与战略规划等应用场景。报告内容覆盖行业概况与技术进展、全球及区域市场概览、政策与法规环境、市场需求与消费者行为等核心模块具体呈现高效催化剂使煤制油、煤制气转化率提升15%20%、低能耗工艺降低综合能耗约25%、智能化控制提升生产精度与安全性、环保技术降低排放等关键成果同时包含北美、亚洲、欧洲市场的差异化分析、PESTEL宏观视角及未来趋势预测信息维度全面并配有可量化指标与区域对比数据。包体为1个pptx演示文稿共1个文件大小约8.13MB结构完整图文数据丰富易于直接引用或二次编辑。目前已有88人学习可为关注煤化工清洁化、数字化与高质量发展路径的读者提供一手数据支撑和趋势判断。1. 一份《2024年新型煤化工行业分析报告.pptx》七成工作量不在 PPT 里接这个活的人第一反应通常是打开模板挑配色三天后却卡在“内蒙古到底有几套在产的煤制烯烃装置”这种问题上。新型煤化工的题材特点就是装置数量少、单体投资大、数据分散全国在产的煤制油、煤制气、煤制烯烃、煤制乙二醇装置加起来百来套量级任何一套装置的产能口径搞错区域占比和开工率立刻被带偏。这里要解决的事情很具体——给定 2024 年的年度切片怎么把散落在企业年报、环评与能评公示、行业协会月报、项目公告里的产能与产量整理成一张自洽、经得起追问、能直接出图的主表再落到一份四五十页的 PPT 上。适合两类人刚接手行业研究、要从零搭底表和测算模型的新手以及每年重做一遍、每次都被质疑口径的老手。前者照着搭骨架后者直接翻到第 5 章排查清单。2. 新型煤化工的产业地图四条主线、三个口径、一张底表目录结构不是拍脑袋排出来的它由产业本身的技术分支决定。四条主线对应四套装置单元、四种产能计量单位、四个完全不同的成本敏感变量。先把这张地图画对后面的数据采集、测算、图表才有共同语言。2.1 四条技术主线决定你的报告骨架煤制油分两条腿直接液化走“煤—加氢液化—加氢精制”反应条件苛刻工程放大难度高间接液化走“气化—费托合成—加氢精制/蜡处理”产品谱系更宽除了柴油、石脑油还能切出费托蜡、白油这类高附加值品种。做报告时两条路线要分开列因为它们的单耗、投资强度、产品结构差得很远混在一起算平均成本就是自欺欺人。煤制天然气是“气化—净化—甲烷化”主产品是 SNG产能统计单位是亿标方/年。这里有个高频翻车点有的资料按热值折算成标煤有的按实物量给标方两个数字放在一张表里做同比结果必然对不上。煤制烯烃是这条赛道里装置最多、也最容易被外行讲糊涂的一类。完整链条是“气化—甲醇合成—甲醇制烯烃MTO/MTP”出聚乙烯、聚丙烯。很多报告直接叫它“煤制聚乙烯”把丙烯那一半丢掉了于是一算吨产品煤耗就偏高成本测算全盘偏悲观。煤制乙二醇走草酸酯路线CO 氧化偶联制草酸二甲酯再加氢产品是聚酯级乙二醇下游看聚酯开工率。再往后延伸是煤基新材料——BDO、PBAT、EVA、PGA 这些2024 年不少报告把它们单列一章因为这才是煤化工往高附加值走的落点。主线核心装置单元主产品产能常用单位成本第一敏感变量煤制油气化 费托合成 / 加氢精制柴油、石脑油、费托蜡万吨/年煤价、原油价格煤制天然气气化 净化 甲烷化SNG亿标方/年煤价、气价与管输条件煤制烯烃气化 甲醇合成 MTO/MTP聚乙烯、聚丙烯万吨/年煤价、甲醇—烯烃价差煤制乙二醇气化 草酸酯加氢聚酯级乙二醇万吨/年煤价、乙二醇价格煤基新材料甲醇/烯烃下游延伸BDO、PBAT、EVA万吨/年煤价、产品价差这张表本身就是 PPT 第二章的主图。注意最后一列它决定了你后面敏感性分析要放哪几个变量而不是每个变量都做一遍。2.2 产能、有效产能、开工率三个最容易被混用的口径“产能”这个词在煤化工语境下至少有四层含义做底表时必须拆开建字段不能指望一个字段包打天下。设计产能是装置铭牌值招标文件和可研里写的那个数。核定产能是能评、环评批复里给的数通常等于或略低于设计值。有效产能是按投产月份折算后的当年产能——一套 2024 年 7 月投产的装置当年只贡献半年。产量是实际产出来自月报、年报或协会统计。开工率 产量 / 有效产能。最常见的错误是拿产量除以设计产能。对于年中投产的新装置分子只有半年产出、分母却是一整年产能算出来的开工率凭空腰斩然后你在 PPT 上写“新装置开工率仅 45%”被现场懂行的人一句话问住。口径数据来源折算规则典型误用设计产能可研、招标文件不分投产时间取铭牌值当分母算开工率核定产能能评/环评批复取批复上限与设计值混用不注明有效产能由设计产能推算按投产月份加权与产量同口径不加说明产量年报、协会月报自然年口径与财年数据直接对齐还有两个细节要提前定死一是检修期算不算——我一般把年度大修的时间从分母里扣掉再单列“扣检修口径开工率”这样同一张表既能跟同行比也能反映真实运行强度二是多套装置共用气化岛的情况甲醇产能怎么分摊到下游各套 MTO 上必须在表里留一列“分摊系数”别在公式里隐式处理。提示所有口径约定写进“口径说明”sheet不要写在 PPT 备注里。备注会丢sheet 不会。2.3 主表怎么设计区域 × 路线 × 产品 × 状态底表设计成四维加一状态的宽表一行就是一套装置。状态字段至少要区分规划、在建、在产、停产、停建。把“规划产能”和“在产产能”塞进同一列是国内行业报告里最经典的错误也是第 5 章要展开的第一条坑。字段类型说明常见错误装置编号文本唯一键别用企业名当键同一企业多套装置合并成一行企业/集团文本归一化后的名称别名未合并省份/园区文本落到园区级便于讲配套只到省讲不清资源条件技术路线枚举与 2.1 表一致自定义分类导致无法聚合产品文本主产品多个用分号把副产也算主产品状态枚举规划/在建/在产/停产/停建在产与规划混列设计产能数值单位保留原始单位列只留换算后数值投产时间日期精确到月只写年份无法加权2024 年产量数值若为预估须单独标记预估与实测混用这张表搭好后面所有的区域占比、路线占比、开工率分布、集中度CR5/CR10都只是透视表的产物。搭不好每换一个角度就要回去翻原始资料一份报告做三周。3. 用 pandas 把脏数据洗成能上图的宽表采集阶段拿到的原始数据几乎不可能直接进模型。它们来自不同口径的公开资料格式各异、单位各异、命名各异。这一步做扎实后面能省掉大量返工。3.1 原始数据常见的三种脏法第一种是单位混乱。同一列里混着“万吨/年”“万吨”“吨/日”还有按热值折算过来的“万吨标煤”。更麻烦的是热值口径——收到基、干燥无灰基、干燥基三个基准下的煤耗数字能差出两成。我见过最典型的翻车是一边用收到基煤价配干燥无灰基煤耗算出来的吨成本比同行低 800 块还以为是成本优势。第二种是名称别名。“神华宁煤”“宁煤”“国家能源集团宁夏煤业”指同一家上游资料里三种写法都出现过。别名不合并透视表能把一家企业拆成三家集中度分析直接失真。第三种是时间口径不统一。有的资料用自然年有的用财年有的按月给、有的按季度给。年中投产装置还涉及产能加权问题不处理就等于默认全年满产。3.2 清洗脚本别名映射、单位字典与投产月份加权import pandas as pd # 别名表上游给的企业名/装置名千奇百怪先做归一再做任何统计 ALIAS { 神华宁煤: 国家能源集团宁夏煤业, 宁煤: 国家能源集团宁夏煤业, 宁煤煤制油: 国家能源集团宁夏煤业, 中天合创鄂尔多斯: 中天合创, } # 单位字典所有换算只在这里出现一次禁止在业务代码里散落 1e4 这类魔数 UNIT { (万吨/年, 吨/年): 1e4, (万吨, 吨): 1e4, (吨/年, 吨/年): 1.0, } def load_raw(path: str) - pd.DataFrame: # 关键数值列先按字符串读进来避免 0.10 被解析成 0.1 之后再也还原不回去 df pd.read_excel(path, sheet_namecapacity, dtype{capacity_raw: str}) df[company] df[company_raw].str.strip().replace(ALIAS) return df def to_ton_per_year(value: float, unit_from: str, unit_to: str 吨/年) - float: factor UNIT.get((unit_from, unit_to)) if factor is None: # 遇到没登记的单位直接报错不要静默按 1 处理否则会污染整列 raise ValueError(f未登记的单位换算{unit_from} - {unit_to}) return float(value) * factor def effective_capacity(design_tpy: float, commission_month, month_in_service: int 12) - float: 按投产月份对当年产能加权7 月投产的装置当年只算 6 个月有效产能 if pd.isna(commission_month): return design_tpy # 存量装置全年计入 months max(0, month_in_service - int(commission_month) 1) return design_tpy * months / 12这段代码有三个设计取舍值得说明。第一别名表独立成字典而不是在 DataFrame 上反复str.replace链式调用因为链式替换的顺序会影响结果还容易把“宁夏煤业”误替换成“国家能源集团国家能源集团宁夏煤业”。第二单位字典以(源单位, 目标单位)为键强迫调用方明确表达意图遇到没登记的组合直接抛异常——宁可让程序崩也别让错误数据静默流进模型。第三投产月份加权函数把“投产所在月算不算整月”这个约定固化成一个参数month_in_service默认按自然月计入如果内部口径是按 12 月 31 日算投产改成 11 就行别在业务代码里改。参数上还有一个容易忽略的点design_tpy传进来的应该是设计产能还是核定产能取决于你最终要对比的对象是谁。跟行业协会口径对比用核定产能跟企业公告对比用设计产能。这个选择必须写进口径说明不能靠记忆。3.3 洗完必做的三道勾稽校验清洗完不校验等于把风险留到汇报现场。我固定做三道校验任何一道不过就不往下走。def check_region_sum(df: pd.DataFrame) - pd.DataFrame: 校验一分区加总必须等于全国口径差出来的每一吨都要能说清去哪了 by_region df.groupby(region)[capacity_tpy].sum().rename(sum_by_region) national df[capacity_tpy].sum() diff pd.DataFrame({sum_by_region: by_region}) diff[gap_to_national] diff[sum_by_region] - national return diff.loc[diff[gap_to_national].abs() 1e-6] def flag_outliers(df: pd.DataFrame, group_colroute, value_colutilization) - pd.DataFrame: 校验二按技术路线分组做 MAD 判定比全局 3σ 稳得多。 煤制气和煤制烯烃的开工率量级本来就不同全局阈值只会两头误伤。 med df.groupby(group_col)[value_col].transform(median) mad (df[value_col] - med).abs().groupby(df[group_col]).transform(median) df[is_outlier] (df[value_col] - med).abs() 3 * 1.4826 * mad return df def check_double_count(df: pd.DataFrame) - pd.DataFrame: 校验三同一企业同一园区同一产品投产时间相近的两行高度疑似重复登记 key [company, park, product] return df.sort_values(commission_date).groupby(key).filter(lambda g: len(g) 1)三道校验分别对应三类事故区域加总不等于全国说明有装置没归到省份或者跨省集团被重复计入开工率离群说明分母口径没统一或者产量单位错了重复登记说明同一套装置在来源不同的两份资料里各出现一次。注意离群值不要直接删。先看它的原始资料能解释就保留并加备注解释不了才标记待核。删数据是最省事也最容易被现场问倒的做法。4. 经济性测算煤价、产品价与二维敏感性怎么算才站得住行业分析报告的正文价值八成压在测算这一章。读者真正关心的不是“有几套装置”而是“这一套在当前煤价下赚不赚钱、煤价涨到多少就不赚了”。4.1 吨产品完全成本的六个科目与单耗参数煤化工的完全成本拆成六块原料煤、燃料动力、催化剂与化学品、人工与其他现金费用、折旧摊销、财务费用再减去副产折让。前四项叫现金成本加上折旧和财务才是完全成本。很多报告只算现金成本得出“全行业盈利”的结论一旦把折旧摊进去就变成一半亏损这是最伤报告可信度的一件事。单耗参数是整个模型的地基。煤耗不能直接抄别人的报告因为煤质褐煤、烟煤、无烟煤和气化炉型水煤浆、干粉、碎煤加压对单耗的影响在 15% 以上。我的做法是优先用项目能评或环评里标定的年耗煤量除以年产量拿不到就用同园区同炉型装置的实际运行值。下面这份参数表里的数字是为了演示计算逻辑的示例口径务必替换成你自己采集到的标定值。import numpy as np import pandas as pd # 单耗与成本参数全部外部化方便替换成你调研到的项目标定值 PARAM { coal_per_t: 5.2, # 吨产品原料煤单耗吨煤/吨产品示例口径 coal_price: 620.0, # 到厂煤价元/吨不含税 power_per_t: 900.0, # 综合电耗kWh/吨 power_price: 0.42, # 综合电价元/kWh other_cash: 480.0, # 催化剂、化学品、人工、修理等现金成本元/吨 depreciation: 700.0, # 折旧摊销元/吨按设计产能直线摊 finance: 220.0, # 财务费用元/吨 byproduct_credit: 260.0, # 副产液化气、硫磺、C5 等折让元/吨 } def cash_cost(p: dict) - float: 现金成本只含当期需要掏钱的科目 return (p[coal_per_t] * p[coal_price] p[power_per_t] * p[power_price] p[other_cash] - p[byproduct_credit]) def full_cost(p: dict) - float: 完全成本现金成本 折旧 财务费用 return cash_cost(p) p[depreciation] p[finance] def breakeven_coal_price(p: dict, net_product_price: float) - float: 给定不含税产品价反算保本到厂煤价。产品价必须与成本同为不含税口径。 fixed (p[power_per_t] * p[power_price] p[other_cash] p[depreciation] p[finance] - p[byproduct_credit]) return (net_product_price - fixed) / p[coal_per_t]breakeven_coal_price是整个模型里最常被引用的一行输出它的物理含义是在给定产品价格下煤价涨到这个数这套装置的完全成本刚好等于售价。参数上最容易出错的是税——如果产品价拿的是含税挂牌价煤价拿的是不含税坑口价算出来的保本煤价会平白高出百分之十几。统一到不含税或者统一在函数入口做一次除法两者选一别混着来。4.2 盈亏平衡煤价与油价—煤价敏感性矩阵单点测算只能回答“现在赚不赚钱”回答不了“煤价涨 100 块会怎样”。真正有说服力的是二维矩阵横轴产品价格、纵轴到厂煤价格子里填完全成本与售价的差额正数亏损、负数盈利。# 二维敏感性行是到厂煤价列是产品不含税价格子值是盈亏正数亏损 coal_prices np.arange(400, 1001, 50) # 元/吨覆盖主产区坑口到到厂的合理区间 product_prices np.arange(6000, 10001, 500) # 元/吨不含税 grid np.array([ [full_cost({**PARAM, coal_price: c}) - pp for pp in product_prices] for c in coal_prices ]) sens pd.DataFrame(grid, indexcoal_prices, columnsproduct_prices) sens.index.name 到厂煤价(元/吨) sens.columns.name 产品不含税价(元/吨) # 保本线零值等值线就是盈亏平衡曲线直接作为热力图的等值线叠加 print(sens.round(0).to_string())这段代码的输出是一张可直接喂给热力图的矩阵。参数步长值得讲究煤价步长 50 元/吨、产品价步长 500 元/吨是兼顾可读性和分辨率的折中步长太小热力图色块过密看不出梯度步长太大保本线会被画成折线显得粗糙。煤制油和煤制气还有一层特殊逻辑——它们的盈利拐点往往不在煤价而在原油价格或天然气门站价。行业里习惯看“煤油比价”也就是吨产品价格与吨煤价之比。做报告时把比价作为一个独立的小节给出历史区间与当前位置比单纯说“煤价下跌利好煤化工”有信息量得多。4.3 图表选型哪些图能进正文哪些只能进附录PPT 上每一张图都要回答一个明确问题回答不了的就放附录。下面是这类报告里我用得最多的组合。要表达的内容首选图型不推荐原因路线/区域产能结构横向堆叠条形3D 饼图类别多时饼图无法比较且饼图排序无意义开工率年度趋势折线柱状柱状强调绝对量趋势读起来费劲区域分布横向条形中国地图小省份色块看不清还容易踩地理底图问题煤价—产品价价差双线 价差面积双 Y 轴双轴容易被误读成两条对等曲线敏感性分析热力图 等值线三维曲面平面投影后三维曲面严重失真项目进度甘特条时间轴箭头箭头表达不了并行和延期双 Y 轴我基本不用除非两条曲线的量纲确实无法统一且必须同图对比。用它的时候一定把左右轴的零点对齐否则同样的波动幅度看起来差出好几倍被追问一次就很难看。5. 排查清单这份报告最容易翻车的五处每年重做这份报告出问题的地方高度集中。下面五条是我踩过的、也见过别人反复踩的按“现象 → 原因 → 解决”写成清单出稿前逐条对一遍。5.1 数据口径类的三个坑坑一是开工率出现 100% 以上的异常值。现象是某省开工率算出 108%看着像好消息。原因通常是产量用的是行业统计口径含试车产量或外购甲醇加工的产量而分母用的是自产装置的有效产能两者边界不一致。解决办法是把分母拆细自产甲醇对应的烯烃产出才算进分子外购甲醇加工的产量单列一行“外购甲醇加工量”不参与开工率计算。同时对共用气化岛的装置统一分摊系数并在附注里写明。坑二是把规划产能当在产产能。现象是某条技术路线的产能三年翻倍跟实际产量走势完全背离。原因是底表里没有“状态”字段规划、在建、在产混成一列。解决办法是底表强制加状态枚举所有汇总口径默认只取“在产”做展望时再单独出一版“在产 在建 规划”的口径并且必须换一种颜色或加虚线边框让读者一眼看出这不是实际产能。坑三是同比数字对不上。现象是今年报告的 2023 年产能数据和去年报告里的 2023 年数据不一致。原因是上游资料每年都在修订而你没有维护一张带版本的历史表。解决办法是建一份历史快照表每次更新时保留旧值并记录修订原因和修订日期报告里明确写“2023 年数据为当年口径与 2024 年报告口径存在修订差异”。这句话很丑但它能救你一次。5.2 测算与呈现类的两个坑坑四是单耗系数跨路线乱用。现象是煤制烯烃的吨成本算出来比煤制油还高跟自己上一版模型的结论矛盾。原因很可能是把煤制甲醇的煤耗直接当成了煤制烯烃的煤耗漏掉了甲醇到烯烃那一段的损失MTO 甲醇单耗通常在 2.9 到 3.0 吨甲醇每吨烯烃视选择性和回炼而定。解决办法是单耗按“从煤到最终产品”的全链条计算分段列出中间单耗让每一段都能被单独核对。分段的另一个好处是甲醇价格市场化程度高把中间环节拆开后可以直接用市场价做替代测算。坑五是图上和文里数字不一致。现象是正文写“CR5 约 45%”配图插的是另一版数据的饼图。原因通常是出图脚本和正文数字来自两次不同的手工计算。解决办法只有一个所有进入 PPT 的数字都必须从同一份宽表通过脚本输出一个都不许手敲。第 6 章会给出具体做法。提示定稿前把 PPT 全文导出成文本用关键词搜索“万吨”“亿方”“%”逐个回到底表核对。这一步土但能挡掉九成的低级错误。6. 进阶把出图和套版做成每年可复用的脚本报告每年都要重做一次真正值得投入的是把“数据到页面”这一段自动化。做法是准备一个母版 PPT把所有重复出现的版式封面、目录、路线总览、区域分布、测算结论定义成幻灯片版式图表位置用占位符占好然后用 python-pptx 往里填内容。from pptx import Presentation from pptx.util import Inches, Pt TEMPLATE template_2024.pptx prs Presentation(TEMPLATE) def add_page(title: str, body: str, chart_png: str, layout_idx: int 6): layout_idx 指向母版里已排好版式的空白内容页位置由母版决定 slide prs.slides.add_slide(prs.slide_layouts[layout_idx]) slide.shapes.title.text title # 正文框按母版占位符取不写死坐标换模板时不用改代码 body_box slide.placeholders[1] body_box.text_frame.text body slide.shapes.add_picture(chart_png, Inches(0.6), Inches(2.0), widthInches(8.4)) return slide add_page(2024 年产能结构烯烃仍是主力, 在产产能口径不含规划与在建数据截至 2024 年 12 月。, out/2024_capacity_by_route.png) prs.save(2024年新型煤化工行业分析报告.pptx)这段代码的关键不在语法而在两个约定。第一坐标不写死在脚本里图片位置由母版占位符决定换模板时只改母版不改代码第二add_page的第三个参数强制要求传图片路径意味着图表必须先落盘成文件不能临时截图粘贴——文件有版本、可追溯、能重跑。配套再写一个校验脚本把所有进 PPT 的数字从同一份宽表导出成一张对照表出稿前用 PPT 导出文本逐项比对。我自己的习惯是报告定稿前不打开 PPT 做任何数字修改要改就回宽表改、重跑脚本、重新生成。这条规矩听起来麻烦但它是我唯一攒下的后悔药——凡是手动改过的 PPT第二年复用时一定会出错而且很难查。图表导出的规格也顺手固化一下分辨率 200 到 300 dpi中文字体在脚本里显式指定不要依赖系统默认否则换一台机器跑出来的图里全是方框。文件名统一按“年份_主线_内容_维度”命名比如2024_煤制烯烃_产能分布_区域.png这样三四十张图堆在文件夹里也能一眼找到哪张是哪张。希望帮到你。本文还有配套的精品资源点击获取
上一篇/下一篇内容由系统自动关联 返回资讯列表 →