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

点击Streamlit按钮后如何保存Pandas DataFrame为CSV文件

Streamlit导出DataFrame到服务器端CSV报错解决方案

报错根因

你代码中触发报错的核心原因是:st.dataframe()返回的table是Streamlit的前端渲染对象,并非Pandas DataFrame实例,因此不具备to_csv方法。你自定义的generate_csv函数本身逻辑没有问题,报错同样是因为调用时传入了上述渲染对象,而非Pandas DataFrame。

正确实现代码

直接针对你要操作的Pandas DataFrame切片做导出即可,修改后的完整代码如下:

if len(data_frame) == 0:
    st.write("Please load file.")
else:
    min = st.number_input('Od:', 0, len(data_frame), 0)
    max = st.number_input('Do:', 0, len(data_frame), len(data_frame) )
    # 提前定义要渲染、导出的Pandas DataFrame切片
    sliced_df = data_frame.iloc[min:max]
    dataset = st.container()
    # 渲染表格
    st.dataframe(sliced_df)

    if st.button('Generate csv'):
        # 直接对Pandas实例调用to_csv存储到服务器
        sliced_df.to_csv('table.csv', encoding='utf-8-sig', index=False)
        st.success("CSV文件已成功存储到服务器端")

可选配置说明

  • 替换to_csv的第一个参数为绝对路径即可自定义CSV存储位置,需要确保Streamlit运行进程对目标路径有写入权限
  • encoding='utf-8-sig'用于兼容Windows系统打开CSV不乱码,不需要可删除
  • index=False用于避免导出CSV时额外增加Pandas默认行索引列,不需要可删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:30:00