01b7759921ceae8daa6711a8f559ab9847e9d49b
财务报表数据处理工具集
这是一套用于处理财务报表数据的 Python 工具集,包含资产负债表和利润表处理功能。
📋 工具列表
主程序:财务报表统一处理工具 ⭐ 推荐使用
脚本:main.py
主要功能:
- 🔍 自动识别:智能识别资产负债表和利润表文件
- 📊 统一处理:自动调用对应的处理工具
- 📁 合并输出:将两个报表合并到一个 Excel 的不同 Tab 页
- 🎯 智能命名:自动清理文件名,去除"合并报表"等冗余文字
- 💯 单位统一:所有数据统一转换为亿(保留 2 位小数)
1. 资产负债表处理工具
脚本:process_balance_sheet.py
主要功能:
- 按照预定义分类重新组织数据
- 自动计算分类汇总
- 数字转换为亿(保留 2 位小数)
- 第一行显示日期
- 统一输出为 Excel 格式
详细说明:📖 资产负债表处理说明.md
2. 利润表处理工具
脚本:process_income_statement.py
主要功能:
- 将大数字转换为以亿为单位(保留 2 位小数)
- 保留小数/比率不变
- 删除指定的无用行
- 第一行显示日期
- 统一输出为 Excel 格式
详细说明:📖 利润表处理说明.md
🗂️ 目录结构
organize_excel_data/
├── config/ # 配置文件目录
│ ├── balance_sheet_categories.json # 资产负债表分类配置
│ └── income_statement_config.json # 利润表配置
├── input/ # 输入文件目录
│ ├── *资产负债表*.csv/*.xlsx # 资产负债表文件
│ └── *利润表*.csv/*.xlsx # 利润表文件
├── output/ # 输出文件目录
│ └── *.xlsx # 处理结果(包含多个 Tab)
├── main.py # 主程序(推荐使用)⭐
├── process_balance_sheet.py # 资产负债表处理脚本
├── process_income_statement.py # 利润表处理脚本
├── README.md # 总体说明文档(本文件)
├── 资产负债表处理说明.md # 资产负债表详细说明
└── 利润表处理说明.md # 利润表详细说明
🚀 快速开始
1. 环境准备
确保已安装 Python 3 和必要的依赖库:
pip install pandas openpyxl
或使用:
pip install -r requirements.txt
2. 准备数据
将待处理的文件放入 input/ 目录:
- 资产负债表文件(建议文件名包含"资产负债表")
- 利润表文件(建议文件名包含"利润表")
3. 运行相应脚本
处理资产负债表:
python3 process_balance_sheet.py
处理利润表:
python3 process_income_statement.py
4. 查看结果
处理完成后,文件将保存在 output/ 目录下:
- 资产负债表:
organized_原文件名.xlsx - 利润表:
processed_原文件名.xlsx
📊 处理效果对比
资产负债表
| 处理前 | 处理后 |
|---|---|
| 数据分散,无分类 | 按 9 大类组织 |
| 无汇总数据 | 自动计算汇总 |
| 一、资产总计 | 资产总计(简化) |
| 股票代码在第一行 | 日期在第一行 |
| 数据保持原始单位 | 数据保持原始单位 |
输出示例:
日期 2024/12/31 2023/12/31 ...
资产总计 604,352亿 486,038亿 ...
所有者权益合计 227,667亿 174,300亿 ...
负债合计 376,684亿 311,739亿 ...
类现金 216,678亿 142,001亿 ... ← 汇总行
货币资金 140,410亿 81,674亿 ...
交易性金融资产 6,936亿 1,791亿 ...
利润表
| 处理前 | 处理后 |
|---|---|
| 数据单位为"元" | 转换为"亿"(保留 2 位) |
| 包含无用信息行 | 删除指定行 |
| 股票代码在第一行 | 日期在第一行 |
| 营业收入: 4.07E+11 | 营业收入: 4071.50 |
| 毛利率: 0.2642 | 毛利率: 0.2642(不变) |
转换规则:
- 大数字(≥1)→ 转换为亿(保留 2 位小数)
- 小数/比率(<1)→ 保持不变
⚙️ 配置说明
资产负债表配置
文件:config/balance_sheet_categories.json
用途:定义分类和项目归属
示例:
{
"categories": [
{
"name": "类现金",
"items": ["货币资金", "交易性金融资产", "衍生金融资产(流动)"]
}
]
}
利润表配置
文件:config/income_statement_config.json
用途:定义需要删除的行
示例:
{
"rows_to_delete": ["股票代码", "上市公司", "财报类型", "货币"]
}
💡 使用场景
场景 1:财务分析
- 快速查看资产负债结构
- 按分类汇总查看各类资产/负债占比
- 利润表数据单位统一,便于分析
场景 2:数据对比
- 多年度数据横向对比
- 分类汇总数据纵向对比
- Excel 格式便于制作图表
场景 3:报告制作
- 处理后的数据格式规范
- 可直接用于报告和演示
- 减少手工整理时间
⚠️ 注意事项
通用事项
- 支持的输入文件格式:
.csv、.xlsx、.xls - 输出文件格式:统一为
.xlsx(Excel 格式) - CSV 文件使用 UTF-8 编码
- 脚本会自动处理
input/目录下的相关文件 - 输出文件会覆盖同名的已有文件
资产负债表特别注意
- 项目名称必须与原始数据完全匹配
- 数据保持原始单位,不进行转换
- 汇总计算会自动处理空值
利润表特别注意
- 绝对值 ≥ 1 的数字会转换为亿
- 绝对值 < 1 的数字保持不变
- 转换后可能损失精度(保留 2 位小数)
🔧 常见问题
Q1: 如何批量处理多个文件?
A: 将所有文件放入 input/ 目录,运行相应脚本即可自动处理所有文件。
Q2: 处理后的数据准确吗?
A:
- 资产负债表:数据保持原样,仅重新组织
- 利润表:大数字转换为亿,保留 2 位小数,比率保持不变
Q3: 如何修改配置?
A:
- 资产负债表:编辑
config/balance_sheet_categories.json添加/修改分类 - 利润表:编辑
config/income_statement_config.json添加/删除要删除的行
Q4: 文件没有被处理怎么办?
A:
- 检查文件是否在
input/目录 - 检查文件名是否包含关键词(资产负债表/利润表)
- 查看脚本输出的提示信息
Q5: 如何查看详细说明?
A: 查看对应的详细说明文档:
- 资产负债表:资产负债表处理说明.md
- 利润表:利润表处理说明.md
📖 详细文档
- 📘 资产负债表处理说明.md - 资产负债表处理详细说明
- 📙 利润表处理说明.md - 利润表处理详细说明
- 📗 更新日志.md - 版本更新历史
🎯 版本历史
v1.2 (2025-11-09)
资产负债表:
- 优化输出:第一行显示日期而非股票代码
- 简化名称:特殊分类使用配置中的 name
- 完善分类配置:新增多个遗漏的资产负债项目
利润表:
- 新增利润表处理工具
- 数字单位转换为亿(保留 2 位小数)
- 删除指定的无用行
v1.1 (2025-11-09)
- 优化输出格式:统一输出为
.xlsx格式 - 新增分类汇总功能:自动计算每个分类的金额总和
- 优化特殊分类显示
v1.0 (2025-11-09)
- 初始版本
- 支持 CSV 和 Excel 文件输入
- 支持自定义分类配置
- 自动处理批量文件
📞 技术支持
如有问题或建议,请:
- 查看详细说明文档
- 检查配置文件格式
- 查看脚本输出的提示信息
祝使用愉快!🎉
Description