在 Streamlit 中,我们可以利用 st.sidebar 组件在侧边栏创建选择功能,并根据用户的选择更新主页的显示内容。本文介绍了几种设置侧边选择功能的方法。
一
option = st.sidebar.radio('',['样本预测','模型性能'])#第一个参数为label,即功能的标签,第二个参数为由表示功能的字符串组成的列表。
if option == '样本预测':
#if内是对样本预测这个功能的具体实现,将会展示在主栏
st.write("请输入样本特征进行分类预测:")
uploaded_file = st.file_uploader("上传文件", type=["csv"])
if uploaded_file is not None:
try:
file = pd.read_csv(uploaded_file)
data_list = []
for item in file.values:
data_list.append([item[0]] + [float(i) for i in item[1].split(',')])
data = pd.DataFrame(np.array(data_list))
data.columns = ['id'] + [str(i) for i in range(len(data_list[0]) - 1)]
train = data.drop(['id'], axis=1)
y = model.predict(train, num_iteration=model.best_iteration)
y = np.argmax(y, axis=1)
st.write(y)
y = pd.DataFrame(y)
csv_data = y.to_csv(index=False, header=False)
st.download_button(
label="预测结果",
data=csv_data,
file_name="result.csv",
mime="text/csv"
)
except Exception as e:
st.error(f"读取文件时出错: {e}")
if option =='模型性能':
##模型性能功能的代码实现此处省略
二
option1 = st.sidebar.button('模型预测')#使用sidebar.button()函数实现,第一个功能
if option1:
st.write("请输入样本特征进行分类预测:")
uploaded_file = st.file_uploader("上传文件", type=["csv"])
if uploaded_file is not None:
try:
file = pd.read_csv(uploaded_file)
data_list = []
for item in file.values:
data_list.append([item[0]] + [float(i) for i in item[1].split(',')])
data = pd.DataFrame(np.array(data_list))
data.columns = ['id'] + [str(i) for i in range(len(data_list[0]) - 1)]
train = data.drop(['id'], axis=1)
y = model.predict(train, num_iteration=model.best_iteration)
y = np.argmax(y, axis=1)
st.write(y)
y = pd.DataFrame(y)
csv_data = y.to_csv(index=False, header=False)
st.download_button(
label="预测结果",
data=csv_data,
file_name="result.csv",
mime="text/csv"
)
except Exception as e:
st.error(f"读取文件时出错: {e}")
st.sidebar.markdown('-------')功能选项之间可以插入横线进行分割
option2 = st.sidebar.button('模型性能')
if option2:
#此处代码省略