如何在 streamlit 中将 DataFrame 保存为 csv?

How to save DataFrame as csv in streamlit?

您好,我尝试将我的 DataFrame 保存为 streamlit 中的 csv 文件。 我的程序 return 将两个数据帧流化为 data。 我想制作允许保存此数据帧的按钮。 我试试这个简单的代码:

if st.button("Pobierz plik"):
    data[0].to_csv('file.csv',index=False)

但是当我点击按钮时没有任何反应。 有人知道吗?

您需要使用st.download_button

对于 streamlit > 1.0.0

Display a download button widget.

This is useful when you would like to provide a way for your users to download a file directly from your app.

Note that the data to be downloaded is stored in-memory while the user is connected, so it's a good idea to keep file sizes under a couple hundred megabytes to conserve memory.

可以找到一个工作示例here

你的情况

@st.cache
 def convert_df(df):
     # IMPORTANT: Cache the conversion to prevent computation on every rerun
     return df.to_csv().encode('utf-8')

csv = convert_df(data[0])

st.download_button(
     label="Download data as CSV",
     data=csv,
     file_name='large_df.csv',
     mime='text/csv',
 )