Streamlit中st.selectbox默认选中首列问题排查求助
自定义Streamlit Selectbox默认选中列
你的代码里st.selectbox没有指定默认选中项,所以组件会自动选中列名列表的第一个元素。要设置自定义默认列,只需要给st.selectbox添加index参数,指定目标列在column_names中的位置即可。
修改后的代码示例:
import streamlit as st import pandas as pd csv_file = st.file_uploader("Upload a CSV file", type="csv") if csv_file is not None: data = pd.read_csv(csv_file) column_names = data.columns.tolist() # 替换成你想要默认选中的列名 target_default_column = "你的目标列名" # 获取目标列的索引,不存在则 fallback 到第一列 default_index = column_names.index(target_default_column) if target_default_column in column_names else 0 # 传入index参数设置默认选中项 column_selection = st.selectbox("Select a Column (or Text Column)", column_names, index=default_index) for text in data[column_selection]: st.write(text)
关键说明
- 把
target_default_column替换成你实际想默认选中的列名称 - 通过
column_names.index()获取目标列在列表中的位置,同时做了容错处理:如果上传的CSV里没有该列,会自动选中第一列 st.selectbox的index参数接受整数类型,对应选项列表的下标(从0开始)
内容的提问来源于stack exchange,提问作者Bits
相关产品推荐
相关产品推荐

