pandas 在streamlit上传不同扩展文件的问题

watbbzwu  于 2023-06-04  发布在  其他
关注(0)|答案(2)|浏览(148)

我试图让用户选择他想要上传的文件,但我遇到了一个问题。
例如,用户可以上传两种类型的扩展文件(csvxlsx)。在他上传他的文件streamlit需要打开文件,并显示为一个 Dataframe 。但是在我做的代码中,我创建了两个if来读取扩展名为xlsx和csv的文件,但是没有像预期的那样工作...
上传文件按钮:

下面是我的代码:

import streamlit as st

if option =='Cg':
    st.header("Cálculo do índice de Capabilidade Cg")
    st.text("Irei adicionar algum texto aqui posteriormente para explicar o índice de capabilidade Cdl* e qual equação utilizamoos")
    st.subheader("Faça o Upload do seu Arquivo de Dados abaixo:")
    upload_file = st.file_uploader("Upload Data",type=["csv","xlsx"])

    if upload_file is not None:
        df = pd.read_excel(upload_file)
        st.dataframe(df)
    else:
        df = pd.read_csv(upload_file)
        st.dataframe(df)
v8wbuo2f

v8wbuo2f1#

if-else语句需要修改为:

if upload_file is not None:
    if upload_file.name[0][-4:] == 'xlsx':
        df = pd.read_excel(upload_file)
        st.dataframe(df)
    else:
        df = pd.read_csv(upload_file)
        st.dataframe(df)
bmp9r5qi

bmp9r5qi2#

另一种方法可以考虑使用glob,Python内置模块/函数。

import glob
selected_df = []
all_files_csv = glob.glob("*.csv")
all_files_xlsx = glob.glob("*.xlsx")
for filename in all_files_csv:
    df = pd.read_csv(filename)
    selected_df.append(df)
for filename in all_files_xlsx:
    df = pd.read_excel(filename)
    selected_df.append(df)

希望这有帮助!

相关问题