这是一个智能的命令行Excel数据分析工具,能够自动识别数据结构,提供交互式维度选择,并生成详细的环比对比报告。
- 🔍 智能列识别: 自动区分维度列(文本)和指标列(数值)
- 📅 日期驱动: 根据输入日期自动查找对应的Excel文件
- 🎮 交互式选择: 命令行界面让您轻松选择分析维度
- 📈 环比分析: 自动计算月度环比增长率和变化量
- 🛡️ 错误处理: 完善的异常处理机制,确保程序稳定运行
- Python 3.6+
- pandas
- openpyxl
# Ubuntu/Debian系统
sudo apt update
sudo apt install python3-pandas python3-openpyxl
# 或使用pip(如果允许)
pip3 install pandas openpyxl确保您的Excel文件遵循以下命名规则:
数据_YYYY-MM-DD.xlsx
例如:
数据_2023-10-31.xlsx(本月数据)数据_2023-09-30.xlsx(上月数据)
python3 data_analyzer.py程序运行后,按照提示操作:
1. 输入本月末日期: 2023-10-31
2. 输入上月末日期: 2023-09-30
3. 选择分析维度: 1,2 (选择产品线和所属区域)
4. 查看分析结果
| 产品线 | 所属区域 | 风险等级 | 风险金额 | 风险笔数 | 客户数量 |
|---|---|---|---|---|---|
| 产品线A | 华东区 | 低风险 | 125000.50 | 25 | 18 |
| 产品线B | 华南区 | 中风险 | 89000.00 | 12 | 35 |
-
维度列(Dimension): 文本类型数据,用于分组分析
- 数据类型:
object,string - 示例:产品线、区域、等级等
- 数据类型:
-
指标列(Metric): 数值类型数据,用于汇总计算
- 数据类型:
int64,float64,int32,float32 - 示例:金额、数量、笔数等
- 数据类型:
项目包含完整的测试套件:
python3 create_test_data.pypython3 test_analyzer.py分析完成后,您将看到如下格式的结果:
================================================================================
📈 数据对比分析结果
================================================================================
产品线 所属区域 风险金额_上月 风险金额_本月 风险金额_变化 风险金额_环比(%) ...
产品线A 华东区 2640684.26 1419765.24 -1220919.02 -46.23 ...
产品线A 华北区 2941708.03 779605.53 -2162102.50 -73.50 ...
================================================================================
📊 数据汇总信息:
总维度组合数: 16
风险金额_环比(%): 增长(9) | 下降(7) | 持平(0)
风险笔数_环比(%): 增长(9) | 下降(7) | 持平(0)
客户数量_环比(%): 增长(11) | 下降(5) | 持平(0)
================================================================================
如果您的文件不在当前目录,可以修改 generate_filename 方法来适配您的文件路径结构。
- 缺失数据: 自动用0填充缺失值
- 除零错误: 智能处理分母为0的环比计算
- 数据类型: 自动转换数值类型,处理异常值
程序会询问是否保存分析结果到Excel文件:
分析结果_2023-10-31_vs_2023-09-30.xlsx
├── data_analyzer.py # 主程序文件
├── create_test_data.py # 测试数据生成器
├── test_analyzer.py # 功能测试脚本
├── README.md # 项目说明文档
├── 数据_2023-09-30.xlsx # 示例上月数据
└── 数据_2023-10-31.xlsx # 示例本月数据
A: 检查文件名格式是否正确,确保为数据_YYYY-MM-DD.xlsx格式。
A: 检查数据类型,确保文本列为object类型,数值列为int或float类型。
A: 检查上月数据是否包含0值,程序会自动处理这种情况。
欢迎提交Issue和Pull Request来改进这个工具!
MIT License
享受数据分析的乐趣! 🎉