# 利润表数据处理工具使用说明 ## 📋 功能介绍 本工具用于处理利润表数据,主要功能: 1. **数字单位转换**:将大数字(≥1)转换为以亿为单位,保留两位小数 2. **保留小数**:小数/比率(<1)保持不变 3. **删除指定行**:根据配置删除不需要的行 4. **日期置顶**:第一行显示日期 5. **输出 Excel**:统一输出为 `.xlsx` 格式 --- ## 🚀 快速开始 ### 1. 准备利润表文件 将利润表文件(CSV 或 Excel)放入 `input/` 目录 **文件命名建议**:文件名包含"利润表"或"income",如: - `美的集团_利润表_合并报表_20251106.csv` - `income_statement.xlsx` ### 2. 运行处理脚本 ```bash python3 process_income_statement.py ``` ### 3. 查看结果 处理后的文件保存在 `output/` 目录,文件名格式:`processed_原文件名.xlsx` --- ## ⚙️ 配置文件说明 配置文件位于:`config/income_statement_config.json` ### 默认配置 ```json { "rows_to_delete": [ "股票代码", "上市公司", "财报类型", "货币", "审计意见", "会计师事务所", "数据来源于:理杏仁网站(lixinger.com)" ] } ``` ### 自定义配置 如需删除其他行,直接在 `rows_to_delete` 数组中添加: ```json { "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**: 1. 检查文件是否在 `input/` 目录 2. 文件名建议包含"利润表"或"income" 3. 如果文件名不符合规则,脚本会提示是否处理所有文件 ### 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:处理单个文件 ```bash # 1. 将文件放入 input 目录 cp 美的集团_利润表.csv input/ # 2. 运行脚本 python3 process_income_statement.py # 3. 查看结果 open output/processed_美的集团_利润表.xlsx ``` ### 示例 2:批量处理 ```bash # 1. 将多个文件放入 input 目录 cp *利润表*.csv input/ # 2. 运行脚本(自动处理所有利润表文件) python3 process_income_statement.py # 3. 查看 output 目录 ls output/ ``` --- ## ⚠️ 注意事项 1. **数据精度**:转换为亿后保留 2 位小数,可能损失精度 2. **小数判断**:绝对值 < 1 的数字被认为是比率,不会转换 3. **行名称匹配**:删除行时需要完全匹配(包括空格和标点) 4. **日期行**:必须有"日期"这一行,否则无法正确放置第一行 5. **输出覆盖**:同名输出文件会被覆盖 --- ## 🎯 与资产负债表处理的区别 | 特性 | 资产负债表 | 利润表 | | -------- | ------------------------------- | ------------------------------ | | 脚本名称 | `process_balance_sheet.py` | `process_income_statement.py` | | 主要功能 | 分类汇总 | 单位转换 + 删除行 | | 数字处理 | 保持原始数据 | 转换为亿(保留 2 位小数) | | 配置文件 | `balance_sheet_categories.json` | `income_statement_config.json` | | 输出格式 | 按分类组织 | 保持原始顺序 | --- **如有问题,请参考详细文档 README.md 或查看示例输出**