You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合Flask与pandas在网页展示groupby分组计算结果

代码不生效的核心原因
  • 你写的return p.to_csv('Cmaregraphe.csv')逻辑完全错误:给to_csv()传入本地文件路径时,方法会把结果写入磁盘文件,返回值是None,既不会把计算结果返回给网页,还会把你原始的Cmaregraphe.csv数据源覆盖掉。
  • 分组计算后的结果默认是带多级索引的Series,直接输出也没法被浏览器正常渲染成结构化页面。
可直接运行的修复代码
from flask import Flask
import pandas as pd

app = Flask(__name__)

@app.route('/')
def show_tables():
    # 读取原始CSV,分号分隔的文件直接用sep=';'即可,避免正则分隔符误切列内容
    df = pd.read_csv('Cmaregraphe.csv', sep=';')
    # 执行分组求均值计算,reset_index把分组索引转为普通列,方便表格展示
    group_result = df.groupby(['Date', 'Hour'])['Niveau'].mean().reset_index()
    # 把计算结果转为HTML表格,关闭多余索引列
    table_content = group_result.to_html(
        index=False,
        border=1,
        justify='center'
    )
    # 拼接完整网页结构返回,加基础样式提升可读性
    return f"""
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>分组计算结果</title>
        <style>
            table {{
                border-collapse: collapse;
                width: 70%;
                margin: 30px auto;
            }}
            th, td {{
                padding: 8px 12px;
                border: 1px solid #ddd;
                text-align: center;
            }}
            th {{
                background-color: #f5f5f5;
            }}
            h1 {{
                text-align: center;
                margin-top: 40px;
            }}
        </style>
    </head>
    <body>
        <h1>按日期、小时分组的Niveau均值统计</h1>
        {table_content}
    </body>
    </html>
    """

if __name__ == '__main__':
    app.run(debug=True)
运行注意事项
  • 如果你之前运行过错误版本的代码,原始Cmaregraphe.csv大概率已经被覆盖,先恢复原始数据文件再运行新代码。
  • 确认CSV文件和Python脚本放在同一目录下,否则需要补全文件的绝对路径避免读文件报错。
  • 启动服务后直接访问http://127.0.0.1:5000就能看到结构化的统计表格,不需要额外配置模板文件。后续要调整计算逻辑,直接修改groupby相关的代码即可,最终得到的DataFrame都可以通过to_html()方法直接嵌入页面展示。

内容的提问来源于stack exchange,提问作者中国在年之前我们也

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:57:23