尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

用Python解析新三板年报PDF:解码金达莱FMBR技术与财务数据

发布时间:2026/9/20 18:05:08

资讯中心
01
ARTICLE

用Python解析新三板年报PDF:解码金达莱FMBR技术与财务数据

用Python解析新三板年报PDF:解码金达莱FMBR技术与财务数据
简介2017年江西金达莱环保股份有限公司年度报告面向投资者、环保行业分析师与研究人员系统呈现公司在资本运作、技术研发、海外布局及IPO推进等维度的年度经营全貌。资源为1个PDF文件包体大小约2.27MB包含完整财务报告及管理层讨论有助于快速获取公司2017年度经营与财务关键信息。已有75人学习下载。报告详细披露定向发行700万股并募资18,060.00万元、FMBR兼氧膜生物反应器技术入选多省水污染防治技术目录、新增1项实用新型专利同时记录美国科罗拉多州及江西、江苏子公司的设立以及江西证监局受理IPO辅导备案等关键事项。涵盖会计数据、股本变动、股东情况、融资及利润分配、董事监事高管信息、行业信息、公司治理与内部控制、财务报告等完整章节能够帮助读者全面了解2017年度金达莱的战略动向与财务表现。1. 一份2017年年度报告PDF能读出环保公司的真实成色拿到金达莱830777这份2017年年度报告PDF我做的第一件事不是打开PDF阅读器从头翻而是先把第三节“会计数据和财务指标摘要”里的表格全部抽出来。这份文件表面上是常规的新三板信息披露实际信息密度很高报告期内营业收入从2.00亿跳到4.84亿归母净利润从0.44亿涨到1.47亿毛利率维持在63.96%的高位但把应收账款周转率翻出来看只有0.87技术型环保公司高增长、高毛利、慢回款三者之间的平衡几乎全写在里面。整份PDF覆盖FMBR兼氧膜生物反应器技术、财务数据、定增与IPO辅导、风险提示和公司治理适合环保行业研究、新三板公司分析以及经常要跟PDF年报打交道的开发者。2. FMBR兼氧膜生物反应器技术拆解工艺逻辑与专利护城河2.1 FMBR与JDL两条技术路线的边界第四节“管理层讨论与分析”把公司业务讲得很清楚FMBR技术处理有机污水面向生活污水、养殖、印染、食品加工等场景JDL技术处理重金属废水面向电镀、线路板、金属矿开采、冶炼等行业。这两条线覆盖了大多数污水处理场景但变现方式不完全一样。原文里给出的产品形态是污水处理成套设备、整体解决方案、投资及运营服务三类再加上技术咨询。这解释了一个关键现象为什么这家公司毛利率能到63.96%。纯工程类环保公司毛利率通常在20%到30%之间而设备销售结合技术授权、运营服务的模式溢价空间明显更高。做行业分析时不能只看行业分类里的“水污染治理N7721”要看收入结构里设备、工程、运营各占多少才能判断毛利率的可持续性。2.2 兼氧膜生物反应器的工艺原理为什么适合分布式处理FMBR的完整名称是兼氧膜生物反应器技术核心是“兼氧生化膜分离”的组合。传统活性污泥法需要初沉池、二沉池和污泥回流系统占地大、产泥多好氧MBR用膜组件替代二沉池固液分离效率高但曝气能耗和维护成本不低。FMBR的思路是在兼氧条件下完成有机物降解和同步硝化反硝化再用膜组件做泥水分离省掉二沉池和传统污泥回流整体反应器可以做成一体化设备。这个工艺逻辑直接对应年报里反复出现的几个词装备化、分布式、占地小、管理简单。乡镇和农村污水站点通常没有专业运维人员一体化设备拉到现场接上水电就能运行配合远程监控系统自动报警比建大型污水厂更容易落地。年报提到公司自主研发的远程监控系统能自动检测设备运行情况并在故障时提醒4S运维队伍这部分在商业模式里是加分项也是FMBR能批量复制到全国30个省市的原因之一。下面这张对比表是行业内比较通用的认识具体到不同水质和工况会有浮动维度传统活性污泥法好氧MBRFMBR兼氧膜生物反应器是否需要二沉池需要不需要不需要曝气能耗较高高相对低剩余污泥产量多中少占地面积大小小可装备化运维难度中中高低适合分散站点2.3 用专利和研发数据验证技术含量年报里披露的专利数据是理解技术护城河的重要依据。截至报告期公司拥有授权专利81项其中发明专利55项。把这些数字拆开看结构是这样的专利类型数量备注国内发明专利36覆盖FMBR、JDL核心技术国外发明专利19与海外子公司布局形成呼应国内实用新型17报告期新增“一种便于拆卸组装的集水管”ZL 201720092562.2国内外观设计9设备外观与产品形态保护合计81发明专利占比约67.9%发明专利在全部专利里占比超过三分之二这个比例在环保装备公司里不算低。国外发明专利19项对应报告期内设立的美国科罗拉多子公司技术出海不是空话。用PDF阅读器全文搜索“专利”“FMBR”两个关键词可以把散落在公司年度大事记、第四节、第九节的研发信息一次性捞出来比逐页翻效率高得多。另外值得记一笔的是研发人员数量现有研发人员133人占员工总数26.28%本科及以上学历190人占37.55%。年报没有披露研发费用总额没法直接算研发费用率但人员结构已经能说明公司的技术导向。3. 财务数据解码用Python把年报PDF表格转成可计算的指标3.1 为什么要直接解析PDF而不是先转Word很多人习惯先把PDF转Word再抓表格我一般不推荐。新三板年报的表格线、合并单元格和跨页表头在转Word后经常丢结构数字被断行拆开后续清洗成本比直接解析PDF更高。正确做法是直接用pdfplumber从PDF里提取表格再用正则做清洗。整个过程分三步定位第三节所在页抽取表格按字段名映射指标值。代码里需要注意不同券商排版略有差异不能把列号写死。3.2 pdfplumber提取关键财务表格代码与参数说明import pdfplumber import re def clean_number(value): 把 484,055,949.23 这类文本转成浮点数 if value is None: return None value re.sub(r[^\d.\-], , value.replace(,, )) try: return float(value) except ValueError: return None pdf_path 金达莱_2017年年度报告.PDF candidates {} with pdfplumber.open(pdf_path) as pdf: # 第三节“会计数据和财务指标摘要”在报告前部先扫前12页 for page in pdf.pages[:12]: tables page.extract_tables({ vertical_strategy: lines, horizontal_strategy: text, }) for table in tables: for row in table: if not row or row[0] is None: continue for field in [营业收入, 归属于挂牌公司股东的净利润, 毛利率, 应收账款周转率]: if field in row[0] and len(row) 3: candidates[field] { 本期: clean_number(row[1]), 上年同期: clean_number(row[2]), } for field, vals in candidates.items(): print(field, vals)这段代码做的事是打开PDF扫描前12页里的所有表格找到包含“营业收入”“归属于挂牌公司股东的净利润”“毛利率”“应收账款周转率”的行把第二列和第三列分别当作本期和上年同期数值最后打印出来人工确认。clean_number函数负责把带千分位逗号和人民币符号的文本转成浮点数遇到空值返回None。参数里最关键的是extract_tables的table_settings。vertical_strategy设为“lines”表示按页面上的绘制线切分列horizontal_strategy设为“text”表示水平方向按文本间距补出缺失的线。这个组合适合大多数新三板年报如果表格本身没有绘制线可以把vertical_strategy改成“text”但误切的风险会变大。提示pages[:12] 是本份文件里的扫描范围。不同年份或不同券商披露的年报第三节位置不一样先打开PDF阅读器看目录索引再回来改范围。3.3 关键财务指标解读表把抽出来的数字整理成下面这张表比直接看PDF原文直观得多指标2017年2016年读数营业收入4.84亿2.00亿同比141.91%毛利率63.96%62.62%基本稳定归母净利润1.47亿0.44亿同比235.59%扣非归母净利润1.37亿0.34亿同比301.10%经营活动现金流净额1.61亿-0.07亿由负转正大幅改善应收账款周转率0.870.39粗算回款周期约420天资产负债率合并28.96%38.06%明显降杠杆流动比率352.31%209.83%短期偿债能力增强营收翻倍的同时毛利率还维持在63.96%说明增长不是靠低价换来的至少报表上是这样。经营活动现金流净额1.61亿与归母净利润1.47亿相比净现比约1.10利润基本都有现金支撑这一点在环保行业里比高增长本身更稀缺。需要警惕的是应收账款周转率。0.87意味着粗算回款周期接近420天环保设备类项目的验收、审计、政府拨款周期普遍偏长但接近一年半的回款周期对资金链是实打实的压力。年报里“重要风险提示表”也把应收账款回收风险单列了一条后面第五章会专门做交叉验证。还容易忽略的是第三节末尾那张“因会计政策变更及会计差错更正等追溯调整或重述情况”表。2016年应收账款期初数从441,733,312.27调整为429,496,083.07货币资金从203,489,222.43调整为224,475,395.00。这说明计算同比增速时不能直接拿报表上的上年数用必须用追溯调整后的口径否则基期选错所有增长率都会被带偏。4. 资本运作与治理结构定增、IPO辅导、子公司布局的披露读法4.1 从“公司年度大事记”开始交叉验证资本动作年度报告PDF里的“公司年度大事记”通常只有几页但信息密度不低。金达莱2017年的大事集中在四条线上定向发行普通股、核心技术入选多地技术目录、设立境内外子公司、启动IPO申报进入辅导期。定向发行是当年最重要的一次资本动作。报告期内定向发行700万股募集资金18,060.00万元粗算发行价约25.8元/股这里没有扣除发行费用只做量级参考。对照期末每股净资产4.52元这个发行价溢价率相当高说明当时资本市场对技术型环保公司给的估值并不低。总股本从2.00亿股增加到2.07亿股与第七节“融资及利润分配情况”的股本变动描述可以相互印证。另一个值得关注的时间点是2017年第一次临时股东大会通过启动IPO申报议案2017年10月25日取得江西证监局出具的辅导备案函。这意味着这家创新层公司已经走在转板路上。做行业分析时IPO辅导备案这个动作本身就是一个信号公司愿意接受更严格的规范成本和信息披露要求通常说明对自身财务质量和内控水平有一定底气。4.2 子公司架构与PPP模式的落地报告期内新设的三家子公司分别是美国科罗拉多州的JDL International Environmental Protection, Inc.、新余金达莱环保有限公司和江苏金达莱环保科技有限公司。美国子公司对应海外市场拓展新余和江苏子公司则分别强化生产和业务区域覆盖这三家子公司在年报第二节“公司概况”和第五节“重要事项”里都有披露。需要注意的是这家公司的子公司数量远不止这三家。年报“释义”部分列出的奉新金达莱、宜兴金达莱、大丰金达莱、铜陵金达莱、贵州金达莱等一串名字说明之前已经通过区域子公司做了大量渠道下沉。新增三家子公司的意义是补两块短板海外市场和生产能力。业务模式上年报明确写了直销、区域项目合作、PPP三种模式。PPP模式的定义原文写得很标准政府通过特许经营、购买服务、股权合作等方式与社会资本建立利益共享、风险分担及长期合作关系。在实际操作中PPP项目回款周期长但订单体量大对于应收账款周转率0.87的公司来说新签PPP项目的付款条件需要重点关注。4.3 用关键词定位PDF年报里的关键事项新三板年报动辄一百多页逐页翻不现实。我一般会先看目录再用PDF阅读器的全文搜索功能按事件类型直接定位到对应章节。下表是这批事件的检索路径事件披露位置PDF检索关键词定向发行700万股、募集资金公司年度大事记/第七节募集资金、定向发行FMBR技术入选四地技术目录公司年度大事记/第四节FMBR、技术目录设立境内外子公司公司年度大事记/第二节/第五节子公司、设立IPO辅导备案公司年度大事记/第五节辅导、首次公开发行专利权属变更公司年度大事记/第四节专利还有一个容易漏的点是“报告期后更新情况”。这份2017年报的公告编号是2019-044披露时间明显晚于报告期原因通常是补发或延期披露。报告期后更新部分提到董事会秘书、财务总监在2018年3月辞职并完成新任董秘聘任这类人事变动在分析治理结构稳定性时要纳入考量。5. 年报里的风险信号从风险提示到财务科目的交叉验证5.1 四大风险提示与可验证的数据点年报在“声明与提示”里专门列了重要风险提示表四项风险分别是政策风险、市场竞争风险、技术被超越风险、应收账款回收风险。看风险不能只看定性描述要把每个风险映射到可验证的数据点上。政策风险的应对措施是入选各地技术目录。报告期内FMBR技术先后进入《北京市水污染防治技术目录》《陕西省水污染防治技术指导目录》《四川省乡镇污水处理先进实用技术》《江西省污染防治先进适用技术指导目录》这些目录本身是政府背书后续订单转化的节奏要看营收增速能不能维持。市场竞争风险的直接证据是毛利率。63.96%的毛利率在环保行业明显偏高这个水平的护城河来自专利技术而非工程能力一旦竞争对手的膜技术或工艺路线追上来毛利率下滑会非常快。技术被超越风险的验证维度是专利和研发人员81项授权专利、研发人员占比26.28%构成了最基本的防线。5.2 高毛利率与低周转率的组合不矛盾但要盯紧把第三节财务指标放在一起看能读出一个更完整的画面。应收账款周转率只有0.87但流动比率352.31%合并资产负债率28.96%利息保障倍数46.47。这说明公司短期偿债压力不大债务杠杆用得少财务费用低即使回款慢也有足够的安全垫。更关键的是经营现金流。经营活动现金流量净额1.61亿上年同期还是-739万同比增长幅度远超利润增速。用净现比衡量1.61亿除以1.47亿约等于1.10说明利润不是堆积在应收款里的纸面富贵而是真金白银收回来了。这个指标在环保行业里很难得能部分对冲应收账款周转率低带来的担忧但账期结构仍需盯着——长期维持在400天以上的回款周期会在经济下行期放大坏账风险。非经常性损益方面计入当期损益的政府补助约1306.80万元非经常性损益净额约978.78万元占归母净利润比例约6.7%。占比不到一成说明利润主体来自主业政府补助波动对整体利润的扰动有限但如果补贴政策变化对扣非净利润的边际影响仍然需要留意。5.3 交叉验证三步法拿到任何一份年报PDF我建议按下面三步做风险核查第一步从目录定位第三节“会计数据和财务指标摘要”和第十一节“财务报告”先把合并资产负债表、利润表、现金流量表三大表之间的勾稽关系过一遍。第二步用PDF搜索功能定位“应收账款”“政府补助”“债务重组”等关键词把风险提示里提到的科目在附注里找到原始数据。第三步复算关键比率并将本期与追溯调整后的上年数对比而不是直接使用报表上列示的上年数。还有一个信息披露细节值得注意公司为保守商业机密申请豁免披露客户及供应商名称2017年12月申请2018年1月获批。这意味着做收入集中度分析时公开文件里看不到客户名单只能依赖应收账款的账龄分布和金额区间来推断大客户结构。对于分析师来说这是一个信息壁垒需要用行业订单数据和招标信息来侧面补足。6. 进阶把新三板年报PDF批量解析成公司分析库6.1 批量解析的基本思路单份年报解析是基本功做行业横向对比时需要批量处理几十份PDF。网页PDF提取下载只能帮你把文件从线上拿到本地真正的数据抽取还得靠本地脚本。核心思路是复用第三章的表格解析逻辑封装成函数再用路径遍历批量调用。from pathlib import Path import pdfplumber import pandas as pd def extract_key_metrics(pdf_path): 复用第三章的解析逻辑返回该文件的关键指标字典 metrics {} with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages[:20]: for tbl in page.extract_tables(): for row in tbl: if not row or row[0] is None: continue if 营业收入 in row[0] and len(row) 2: metrics[revenue] row[1] if 归属于挂牌公司股东的净利润 in row[0] and len(row) 2: metrics[net_profit] row[1] return metrics files sorted(Path(./reports).glob(*年度报告.PDF)) rows [] for pdf_path in files: rows.append({file: pdf_path.name, **extract_key_metrics(str(pdf_path))}) pd.DataFrame(rows).to_csv(nq_metrics.csv, indexFalse, encodingutf-8-sig)这段代码用Path.glob按文件名模式匹配所有年报PDF循环调用extract_key_metrics最后把结果汇总成CSV。encoding参数用utf-8-sig是为了防止用Excel打开CSV时中文乱码。逻辑上把“解析单份”和“批量遍历”拆成两层后面加字段或换解析策略时不用改外层循环。6.2 字段映射表与跨页表格处理批量解析最大的坑是字段不统一。不同公司的年报会同时出现“营业总收入”和“营业收入”“归属于挂牌公司股东的净利润”在有的报告里简写成“归属于母公司股东的净利润”。建议先做一张字段映射表再跑批量目标字段建议匹配词易错点营业收入营业收入、营业总收入部分报告两者并存注意区分归母净利润归属于挂牌公司股东的净利润合并报表和母公司报表各有一份毛利率毛利率%有的年报不披露需要自行计算应收账款周转率应收账款周转率各公司计算口径可能不同另一个高频问题在跨页表格。pdfplumber默认按页切分表格一张跨两页的表会被拆成两个独立表格直接拼接会丢列或错位。我的做法是先对单份PDF做全页表格数量核对再批量跑遇到跨页表用page_number和表头行内容手动合并后继续。批量解析的正确节奏是先跑通三五家确认字段和分页规律再放大到整个目录直接全量跑大概率会在数据清洗上翻车。本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。