Excel转Polars转换器

一个基于FastMCP的MCP服务器,用于将Excel文件转换为Polars DataFrames,支持多种输出格式和高级分析功能,特别适用于精算数据分析。

  • by raoagbajdos
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 raoagbajdos/python-fastmcp-polars

使用说明

Excel到Polars MCP服务器

一种模型上下文协议(MCP)服务器,使用FastMCP将Excel文件转换为Polars DataFrames。包括全面的精算数据示例和高级分析功能。

特性

  • 将Excel文件(.xlsx、.xls)转换为Polars DataFrames
  • 支持自动检测多张纸
  • 可配置的数据类型推断和模式验证
  • 使用Polars的内存高效处理
  • 多种输出格式:Parquet、CSV、JSON
  • 使用统计信息和元数据生成模式
  • 专业精算数据示例
  • 高级Polars分析和报告
  • 具有真实数据的全面测试套件

安装

此项目使用 uv 用于依赖性管理。确保你有 uv 安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

然后安装项目:

uv sync

用法

运行MCP服务器

uv run excel-polars-mcp

可用的MCP工具

  • read_excel:使用可配置选项将Excel文件转换为Polars DataFrame
  • list_sheets:列出Excel文件中的所有工作表名称
  • read_excel_sheet:从Excel文件中读取特定工作表

API使用

import polars as pl

# Load converted actuarial data
life_table = pl.read_parquet('output/life_table.parquet')
policies = pl.read_parquet('output/policies.parquet')
claims = pl.read_parquet('output/claims.parquet')
reserves = pl.read_parquet('output/reserves.parquet')

# Perform actuarial analysis
loss_ratios = policies.join(claims, on='Policy_ID').group_by('Policy_Type').agg([
    pl.col('Claim_Amount').sum() / pl.col('Face_Amount').sum() * 100
])

# High-value claims analysis
high_value_claims = claims.filter(pl.col('Claim_Amount') > 400000)

# Mortality analysis
high_mortality = life_table.filter(pl.col('Mortality_Rate_qx') > 0.1)

输出格式

每个Excel工作表都转换为多种格式:

格式 用例 文件扩展名
镶木地板 高性能分析、数据科学 .parquet
CSV文件 人类可读,Excel兼容 .csv
对象符号 Web API,结构化数据交换 .json
模式 元数据、统计、数据验证 _schema.json

样品数据

该项目包括全面的精算数据集:

数据集 记录 描述
生命表 101 按年龄划分的死亡率、生存概率(0-100岁)
政策 1000 包含人口统计和财务数据的保险单
索赔 150 保险索赔,包括金额、状态和调查数据
储备 25 按产品类型和估值年度划分的财务准备金

例子

基本用法

python3 examples/demo.py

精算数据示例

创建样本精算数据并将其转换为Polars格式的综合示例:

python3 run_actuarial_example.py

这个例子:

  1. 产生 一个包含真实精算数据的多页Excel文件:

    • 寿命表 死亡率、生存概率和预期寿命(101岁)
    • 保险单 包括人口统计、保费、票面金额(1000份保单)
    • 索赔数据 包括类型、金额、状态和调查时间(150项索赔)
    • 储量计算 按产品类型和估值年份(25条记录)
  2. 转换 将每张纸转换为多种格式:

    • 镶木地板 用于高效数据分析的文件
    • CSV文件 用于人类可读性和Excel兼容性的文件
    • 对象符号 web应用程序和API的文件
    • 模式 包含元数据、统计信息和数据类型的文件
  3. 产生 综合分析:

    • 统计摘要和数据质量报告
    • 按保单类型分析损失率
    • 死亡率分析和高风险识别
    • 储备充足性和趋势分析

高级分析示例

对转换后的数据进行全面的精算分析:

python3 analyze_polars_data.py

功能包括:

  • 索赔分析:按状态、类型和高价值索赔
  • 政策分析:保费率、票面金额和状态分布
  • 死亡率分析:高死亡率年龄和预期寿命统计
  • 储备分析:按年份和产品类型分列的趋势
  • 赔付率:使用高级联接进行索赔分析的政策
  • 数据导出:筛选的数据集和摘要报告

项目结构

├── excel_polars_mcp/          # Core MCP server implementation
│   ├── __init__.py
│   └── server.py              # FastMCP server with Excel conversion tools
├── examples/                  # Example scripts and demos
│   ├── demo.py               # Basic usage demonstration
│   ├── create_actuarial_data.py  # Generate sample actuarial Excel file
│   └── convert_actuarial_data.py # Convert Excel to Polars formats
├── sample_data/               # Generated sample data
│   └── actuarial_data.xlsx   # Multi-sheet actuarial Excel file
├── output/                    # Converted data in multiple formats
│   ├── *.parquet             # Efficient binary format
│   ├── *.csv                 # Human-readable format
│   ├── *.json                # Structured data format
│   ├── *_schema.json         # Metadata and statistics
│   └── conversion_summary.md  # Detailed conversion report
├── tests/                     # Comprehensive test suite
├── run_actuarial_example.py  # One-command actuarial demo
├── analyze_polars_data.py    # Advanced analytics demonstration
├── view_actuarial_data.py    # Data inspection utility
└── pyproject.toml            # Project configuration with uv

## Development

Install development dependencies:

```bash
uv sync --dev

运行测试:

uv run pytest

格式代码:

uv run black .
uv run ruff check --fix .

类型检查:

uv run mypy .

快速开始

  1. 克隆和设置:

    git clone <repository>
    cd python-mcp-excel-polars
    uv sync
    
  2. 运行精算示例:

    python3 run_actuarial_example.py
    
  3. 分析结果:

    python3 analyze_polars_data.py
    
  4. 探索数据:

    python3 view_actuarial_data.py
    

依赖项

  • 极地:高性能DataFrames
  • FastMCP:模型上下文协议实现
  • openpyxl:Excel文件读/写
  • xlsxwriter:多页Excel创建
  • fastexcel:优化Excel处理

用例

  • 精算分析生命表、死亡率研究、储量计算
  • 保险分析:政策分析、索赔处理、损失率
  • 数据迁移:Excel转换为现代数据格式(Parquet、JSON)
  • 财务模型:风险评估、统计分析
  • 商业智能:自动报告和数据转换

许可证

MIT许可证-有关详细信息,请参阅许可证文件。