全栈式数据统计:Flask+Pandas 怎样替换键名称

话不多说,有图有源码:

1.先看效果

2.实现代码

复制代码
from flask import Flask, render_template
import pandas as pd

app = Flask(__name__)

# 自定义千分位格式化函数
def format_thousands(x):
    return f'{x:,.2f}'

@app.route('/')
def show_dataframe():
    path = r'F:\test_data\年度销售数据\2023年度销售数据.xlsx'
    data = pd.read_excel(path, engine='openpyxl')
    data['报审日期'] = pd.to_datetime(data['报审日期'])
    columstype='季度'
    if columstype=='年':
        columstype_data = data['报审日期'].dt.year
    elif columstype=='季度':
        columstype_data = data['报审日期'].dt.quarter
    else:
        columstype_data = data['报审日期'].dt.month
    # print(f"{type(month)},{month}")
    # data['办事处部门_List'] = data['办事处部门'].apply(lambda x: x.tolist())
    # data['事业部_List'] = data['事业部'].apply(lambda x: x.tolist())

    # # 定义一个字典,将旧的key映射到新的key
    # rename_dict = {
    #     1: '1月',
    #     2: '2月',
    #     3: '3月',
    #     4: '4月',
    #     5: '5月',
    #     6: '6月',
    #     7: '7月',
    #     8: '8月',
    #     9: '9月',
    #     10: '10月',
    #     11: '11月',
    #     12: '12月',
    # }

    data2 = pd.pivot_table(data, index=['事业部','办事处部门'], values='合同金额', columns=columstype_data,
                           aggfunc=sum).fillna(0)  # ,'办事处部门',fill_value='无',合计字段 , margins=True, margins_name='Total'
    # -------数值千分位格式化
    data2 = data2.applymap(format_thousands)  #

    # 获取dataframe的键名,并将它们作为列表返回
    column_names = data2.columns.tolist()
    rename_dict ={}
    for i,num in enumerate(column_names):
        rename_dict[num]=str(num)+str(columstype)
    # print(column_names,rename_dict)
    data2 =data2.rename(columns=rename_dict)
    # 使用rename方法替换DataFrame中的key名称
    # data2.rename(columns=rename_dict, inplace=True)
    # print(data2)

    # 将DataFrame转换为HTML
    html = data2.to_html() #index=False
    return render_template('test.html', table=html)


if __name__ == '__main__':
    app.run(debug=True)

3.关注实现内容:

说明:

1)用df.columns.tolist()获取键列表

2)替换键名称: df.rename(columns=rename_dict)

其他请参考:

全栈式数据统计:Flask+Pandas按年,季度,月统计显示

对你有所帮助,请点个赞吧!

相关推荐
烤奶要加冰7 小时前
PyCharm 社区版全平台安装指南
ide·windows·python·pycharm·mac
Siren_dream7 小时前
anaconda与pycharm
ide·python·pycharm
whale fall8 小时前
Windows下PyCharm如何激活python的虚拟环境
ide·python·pycharm
Geo_V8 小时前
提示词工程
人工智能·python·算法·ai
B站_计算机毕业设计之家8 小时前
计算机视觉:python车辆行人检测与跟踪系统 YOLO模型 SORT算法 PyQt5界面 目标检测+目标跟踪 深度学习 计算机✅
人工智能·python·深度学习·算法·yolo·目标检测·机器学习
Doc.S9 小时前
【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
人工智能·python·信息可视化·机器人
Predestination王瀞潞9 小时前
Python3:Eighth 函数
开发语言·python
蒋星熠9 小时前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
xier_ran9 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
程序员三藏10 小时前
接口自动化测试框架搭建详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试