Files
organize_excel_data/利润表处理说明.md
2026-03-05 22:02:57 +08:00

215 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 利润表数据处理工具使用说明
## 📋 功能介绍
本工具用于处理利润表数据,主要功能:
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 或查看示例输出**