本文介绍如何使用 Python Pandas 库,根据 Excel 表格中的'数据源'sheet 自动生成'指标明细'sheet,并完成指标计算和排名。

数据源和指标明细结构

假设你的 Excel 表格包含两个 Sheet:

  • '数据源':包含用于指标计算的原始数据。
  • '指标明细':最终生成的指标计算和排名结果。

'指标明细'sheet 的结构如下:

  • 第一行:标题“1月省端画像指标计算及排名明细”,微软雅黑字体,22 号字号。
  • 第二行到第六行
    • A 列和 B 列合并单元格,分别为“序号”和“对应省份”。
    • C 列合并单元格,第二行到第四行分别为“类型”,“基准值”,“挑战值”。
    • D 到 T 列合并单元格,第二行为“覆盖类”。
    • 第三行 D 到 T 列,分别为“5G 驻留时长占比”、“5G 全网弱覆盖小区占比”、“5G 无覆盖问题场景占比”、“4G 无覆盖问题场景占比”、“4G MDT 弱覆盖占比”、“覆盖类指标均值”。
    • 第四行 D 到 T 列,分别为“指标值”、“得分”、“排名”。
  • 第五行和第六行:对应“基准值”和“挑战值”的指标值、得分和排名。
  • 第七行及以后:根据省份,分别计算对应的指标值、得分和排名。

代码实现思路

  1. **读取数据:**使用 pandas 的 read_excel() 函数读取“数据源”sheet 的数据。
  2. **创建表格结构:**使用 pandas 的 MultiIndex 创建“指标明细”sheet 的表格结构。
  3. **计算指标值:**使用 pandas 的 apply() 函数,结合 lambda 表达式,计算每个单元格的值。
  4. **写入数据:**使用 pandas 的 to_excel() 函数将计算结果写入“指标明细”sheet。
  5. **设置样式:**使用 openpyxl 库设置表格样式。
  6. **写入公式:**使用 openpyxl 库中的 Formula 类将公式转换为 Excel 公式。

代码示例:

import pandas as pd
import openpyxl

# 读取数据源 sheet
data = pd.read_excel('data.xlsx', sheet_name='数据源')

# 创建指标明细 sheet 的表格结构
columns = pd.MultiIndex.from_product([['覆盖类'], ['指标值', '得分', '排名']], names=['类型', '指标']) # 定义指标类别的列名
index = ['基准值', '挑战值'] # 定义指标值的索引名
result = pd.DataFrame(index=index, columns=columns) # 创建 DataFrame

# 计算指标值
def calculate_metrics(row):
    province = row['对应省份']
    # ... (根据具体指标计算公式进行计算)
    return {'指标值': ... , '得分': ... , '排名': ... }  # 返回计算后的指标值、得分和排名

result.apply(lambda row: calculate_metrics(row), axis=1)

# 将数据写入指标明细 sheet
result.to_excel('result.xlsx', sheet_name='指标明细')

# 设置表格样式
wb = openpyxl.load_workbook('result.xlsx')
sheet = wb['指标明细']
# ... (设置样式,例如标题字体、合并单元格等)
wb.save('result.xlsx')

注意事项:

  • 以上代码示例仅提供一个大致的思路,具体的实现需要根据实际情况进行调整。
  • 需要根据具体的指标计算公式进行代码修改。
  • 可以使用 openpyxl 库进行更加灵活的表格样式设置。

总结:

使用 Python Pandas 库可以轻松地实现 Excel 表格指标明细自动生成,提高数据处理效率和准确性。

Python Pandas 实现 Excel 表格指标明细自动生成

原文地址: https://www.cveoy.top/t/topic/mQp1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录