读取Excel 进行汇总
This commit is contained in:
214
利润表处理说明.md
Normal file
214
利润表处理说明.md
Normal file
@@ -0,0 +1,214 @@
|
||||
# 利润表数据处理工具使用说明
|
||||
|
||||
## 📋 功能介绍
|
||||
|
||||
本工具用于处理利润表数据,主要功能:
|
||||
|
||||
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 或查看示例输出**
|
||||
Reference in New Issue
Block a user