5.4 KiB
5.4 KiB
利润表数据处理工具使用说明
📋 功能介绍
本工具用于处理利润表数据,主要功能:
- 数字单位转换:将大数字(≥1)转换为以亿为单位,保留两位小数
- 保留小数:小数/比率(<1)保持不变
- 删除指定行:根据配置删除不需要的行
- 日期置顶:第一行显示日期
- 输出 Excel:统一输出为
.xlsx格式
🚀 快速开始
1. 准备利润表文件
将利润表文件(CSV 或 Excel)放入 input/ 目录
文件命名建议:文件名包含"利润表"或"income",如:
美的集团_利润表_合并报表_20251106.csvincome_statement.xlsx
2. 运行处理脚本
python3 process_income_statement.py
3. 查看结果
处理后的文件保存在 output/ 目录,文件名格式:processed_原文件名.xlsx
⚙️ 配置文件说明
配置文件位于:config/income_statement_config.json
默认配置
{
"rows_to_delete": [
"股票代码",
"上市公司",
"财报类型",
"货币",
"审计意见",
"会计师事务所",
"数据来源于:理杏仁网站(lixinger.com)"
]
}
自定义配置
如需删除其他行,直接在 rows_to_delete 数组中添加:
{
"rows_to_delete": ["股票代码", "上市公司", "你要删除的行名称"]
}
📊 数据转换规则
规则说明
| 原始数据 | 判断标准 | 转换结果 | 示例 |
|---|---|---|---|
| 大数字 | 绝对值 ≥ 1 | 除以 1 亿,保留 2 位小数 | 123456789 → 1.23 |
| 小数/比率 | 绝对值 < 1 | 保持不变 | 0.15 → 0.15 |
| 空值 | - | 保持空 | - |
示例
输入数据:
营业收入,381900000000,343200000000
毛利率,0.2543,0.2489
输出数据:
营业收入,3819.00,3432.00
毛利率,0.2543,0.2489
📝 输出格式
文件结构
第1行:日期 2024/12/31 2023/12/31 2022/12/31 ...
第2行:营业收入 3819.00 3432.00 3200.50 ...
第3行:营业成本 2848.12 2578.45 2401.32 ...
第4行:毛利率 0.2543 0.2489 0.2498 ...
...
特点
- ✅ 第一行是日期
- ✅ 大数字转换为亿(保留 2 位小数)
- ✅ 比率保持原样
- ✅ 删除了配置中指定的行
- ✅ 输出为 Excel 格式
🔧 常见问题
Q1: 如何判断哪些是小数/比率?
A: 脚本自动判断:绝对值 < 1 的数字保持不变,≥ 1 的转换为亿
Q2: 如何添加要删除的行?
A: 编辑 config/income_statement_config.json,在 rows_to_delete 中添加行名称
Q3: 文件没有被处理怎么办?
A:
- 检查文件是否在
input/目录 - 文件名建议包含"利润表"或"income"
- 如果文件名不符合规则,脚本会提示是否处理所有文件
Q4: 如何处理所有文件?
A: 如果文件名不包含"利润表"或"income",脚本会询问是否处理所有文件
📂 目录结构
organize_excel_data/
├── config/
│ ├── balance_sheet_categories.json # 资产负债表配置
│ └── income_statement_config.json # 利润表配置(新增)
├── input/
│ └── [你的利润表文件]
├── output/
│ └── processed_[原文件名].xlsx
├── process_balance_sheet.py # 资产负债表处理脚本
├── process_income_statement.py # 利润表处理脚本(新增)
└── 利润表处理说明.md # 本文档
💡 使用示例
示例 1:处理单个文件
# 1. 将文件放入 input 目录
cp 美的集团_利润表.csv input/
# 2. 运行脚本
python3 process_income_statement.py
# 3. 查看结果
open output/processed_美的集团_利润表.xlsx
示例 2:批量处理
# 1. 将多个文件放入 input 目录
cp *利润表*.csv input/
# 2. 运行脚本(自动处理所有利润表文件)
python3 process_income_statement.py
# 3. 查看 output 目录
ls output/
⚠️ 注意事项
- 数据精度:转换为亿后保留 2 位小数,可能损失精度
- 小数判断:绝对值 < 1 的数字被认为是比率,不会转换
- 行名称匹配:删除行时需要完全匹配(包括空格和标点)
- 日期行:必须有"日期"这一行,否则无法正确放置第一行
- 输出覆盖:同名输出文件会被覆盖
🎯 与资产负债表处理的区别
| 特性 | 资产负债表 | 利润表 |
|---|---|---|
| 脚本名称 | process_balance_sheet.py |
process_income_statement.py |
| 主要功能 | 分类汇总 | 单位转换 + 删除行 |
| 数字处理 | 保持原始数据 | 转换为亿(保留 2 位小数) |
| 配置文件 | balance_sheet_categories.json |
income_statement_config.json |
| 输出格式 | 按分类组织 | 保持原始顺序 |
如有问题,请参考详细文档 README.md 或查看示例输出