You need to enable JavaScript to run this app. 如何基于Flask实现CSV上传的分组词频统计
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Flask实现CSV上传的分组词频统计

Flask端对接高频词统计逻辑的落地方案

核心结论:无需强行构建独立统计结果DataFrame对接模板,完全可以复用你在Jupyter中跑通的统计逻辑,顺着现有Flask的上传、读取、渲染链路无缝迁移,开发量极低。

1. 逻辑抽离:把Notebook代码改成可复用的纯函数

直接把你在Jupyter里调试好的统计逻辑摘出来,做成一个接收完整pandas DataFrame为入参的独立函数,不需要重写逻辑:

  • 函数内保留原有全部处理流程:遍历variable1列所有唯一值、按分类过滤comms_clean列文本、按空格分词、用Counter取每个分类的Top3高频词及对应计数、同步计算每个分类的总样本量
  • 函数直接返回结构化的列表嵌套字典结构即可,不需要刻意转成DataFrame,示例返回结构:
    # 结构可直接传给Flask模板,无需二次转换
    [
        {
            "category": "分类1",
            "sample_count": 156,
            "top3_words": [("订单", 42), ("退款", 27), ("物流", 19)]
        }
    ]
    > 补充说明:只有后续需要实现“统计结果CSV下载”功能时,才需要把这个结构转成DataFrame;纯页面渲染的场景下转DataFrame反而增加冗余格式转换步骤,完全没有必要。
    
    

2. 流程对接:嵌入现有app.py的请求处理链路

不需要修改你已经写好的文件格式校验、按;分隔符读取CSV、解析表头、生成head()预览的逻辑:

  • 在代码走到“成功读取完整CSV为DataFrame”的节点后,直接调用刚才抽离的统计函数,把返回的结构化结果存入变量
  • 把这个统计结果变量和原有传给模板的CSV表头、预览数据参数一起,传入render_template()即可,和现有预览内容的传参逻辑完全一致。

3. 模板适配:在index.html中增加统计结果渲染区块

不需要改动现有已完成的CSV预览、表头渲染代码,直接在预览区块下方新增统计结果的展示模块即可:

  • 循环遍历后端传过来的分类统计列表
  • 每个分类展示3项核心信息:分类名称、总样本量、Top3高频词及对应计数
  • 取值逻辑和你现在渲染CSV表头、预览行的写法完全一致,没有额外的模板语法学习成本。

实操注意事项

  • 统计逻辑全部放在后端Python函数中,不要把数据处理逻辑写到HTML模板的语法里,保持前后端职责分离
  • 读入CSV后先给comms_clean列做空值填充(比如df['comms_clean'] = df['comms_clean'].fillna('')),避免空值参与分词时触发属性报错
  • 初期不需要单独做统计结果页面,直接把统计结果和CSV预览放在同一个页面渲染,用户上传文件后即可一次性看到全部内容,交互路径最短。

内容的提问来源于stack exchange,提问作者Mithos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 03:06:04