小编Dev*_*022的帖子

如何在python和streamlit中下载excel文件?

我有一个 Python 脚本,它读取文件并使用 Python 和 Streamlit 将其转换为数据帧。然后我想创建一个函数,允许用户将此数据框下载为扩展名为 的 Excel 文件.xls

所以我尝试使用这两个函数读取数据框并将其转换为 Excel 文件:

pd.ExcelWriter
df.to_excel
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用链接下载文件时,文件不会下载并显示以下错误:

Failed-Network error
Run Code Online (Sandbox Code Playgroud)

代码:

import pandas as pd 
import streamlit as st

writer = pd.ExcelWriter('update2.xlsx')
df.to_excel(writer, index = False, header=True,encoding='utf-8')
with open(writer,'rb') as f:
    b64 = base64.b64encode(f.read())
    href = f'<a href="data:file/xls;base64,{b64}" download="new_file.{extension}">Download {extension}</a>'

st.write(href, unsafe_allow_html=True)
Run Code Online (Sandbox Code Playgroud)

python excel pandas pandas.excelwriter streamlit

2
推荐指数
1
解决办法
6621
查看次数

使用 python 和 pandas 中的条件创建数据框的子集

假设我有这个数据框,我想根据以下条件创建它的子集。

df=pd.DataFrame({'file':[1205,2897,1205,1205,4312,1322,1242,52,2897,111],
                         'department':[finance,finance,IT,marketing,marketing,IT,finance,IT,marketing,IT],
                         'status':[1,1,1,1,1,1,1,1,1,1],
                         })
Run Code Online (Sandbox Code Playgroud)
   file department  status
0   1205    finance       1
1   2897    finance       1
2   1205       IT         1
3   1205    marketing     1
4   4312    marketing     1
5   1322       IT         1
6   1242    finance       1
7   52         IT         1
8   2897    marketing     1
9   111        IT         1
Run Code Online (Sandbox Code Playgroud)
  • 如果该文件存在于财务中并存在于IT中,则将其从 财务中删除并保留在IT中
  • 如果该文件存在于财务营销中,并且从 FIRST 2 中删除并保留在其中
  • 如果该文件存在于财务营销中,则从第一个删除并将其保留在营销中
  • 如果该文件存在于营销IT中,请从
    第一个删除并将其保留在IT中 …

python if-statement subset dataframe pandas

0
推荐指数
1
解决办法
446
查看次数