Python Pandas 实现 Excel 表格指标明细自动生成
本文介绍如何使用 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 列,分别为“指标值”、“得分”、“排名”。
- 第五行和第六行:对应“基准值”和“挑战值”的指标值、得分和排名。
- 第七行及以后:根据省份,分别计算对应的指标值、得分和排名。
代码实现思路
- **读取数据:**使用 pandas 的
read_excel()函数读取“数据源”sheet 的数据。 - **创建表格结构:**使用 pandas 的
MultiIndex创建“指标明细”sheet 的表格结构。 - **计算指标值:**使用 pandas 的
apply()函数,结合 lambda 表达式,计算每个单元格的值。 - **写入数据:**使用 pandas 的
to_excel()函数将计算结果写入“指标明细”sheet。 - **设置样式:**使用 openpyxl 库设置表格样式。
- **写入公式:**使用 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 表格指标明细自动生成,提高数据处理效率和准确性。
原文地址: https://www.cveoy.top/t/topic/mQp1 著作权归作者所有。请勿转载和采集!