You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Streamlit中为表格单元格添加下拉框(含AgGrid实现方案)

Streamlit表格添加下拉选择列的两种可行方案

原生Streamlit方案(无需额外库)

Streamlit 1.23+版本的st.data_editor支持自定义列配置,可直接给指定列添加下拉选择框,替代手动输入:

import streamlit as st
import pandas as pd

# 初始化示例数据
df = pd.DataFrame({
    "Symbol": ["AAPL", "MSFT", "GOOGL"],
    "Long/Short": ["Long", "Short", "Long"],
    "Price": [150, 300, 120]
})

# 配置列:给「Long/Short」列添加下拉选择框
edited_df = st.data_editor(
    df,
    column_config={
        "Long/Short": st.column_config.SelectboxColumn(
            "Long/Short",
            options=["Long", "Short"],
            required=True,  # 可选,设置为必填项
            width="medium"
        )
    },
    use_container_width=True,
    num_rows="dynamic"  # 可选,允许用户新增行
)

# 展示编辑后的结果
st.write("编辑后的数据:")
st.dataframe(edited_df)

关键细节:

  • 用st.column_config.SelectboxColumn绑定目标列,通过options参数设置下拉选项
  • required=True可强制用户必须选择选项,避免空值
  • num_rows="dynamic"开启后,新增行的「Long/Short」列也会自动带上下拉框

AgGrid方案(需安装streamlit-aggrid库)

如果习惯使用AgGrid组件,可通过配置列编辑器实现下拉选择:

先安装依赖:

pip install streamlit-aggrid

代码示例:

import streamlit as st
import pandas as pd
from st_aggrid import AgGrid, GridOptionsBuilder

# 初始化示例数据
df = pd.DataFrame({
    "Symbol": ["AAPL", "MSFT", "GOOGL"],
    "Long/Short": ["Long", "Short", "Long"],
    "Price": [150, 300, 120]
})

# 构建Grid配置
gb = GridOptionsBuilder.from_dataframe(df)

# 给「Long/Short」列设置下拉编辑器
gb.configure_column(
    "Long/Short",
    editable=True,
    cellEditor="agSelectCellEditor",
    cellEditorParams={
        "values": ["Long", "Short"]
    }
)

# 生成Grid选项
grid_options = gb.build()

# 渲染AgGrid表格
grid_response = AgGrid(
    df,
    gridOptions=grid_options,
    editable=True,
    fit_columns_on_grid_load=True,
    use_container_width=True
)

# 获取编辑后的数据
edited_df = grid_response["data"]
st.write("编辑后的数据:")
st.dataframe(edited_df)

关键细节:

  • cellEditor="agSelectCellEditor"指定使用下拉选择编辑器
  • cellEditorParams中的values参数定义下拉选项列表
  • 必须开启editable=True才能让单元格支持编辑操作

内容的提问来源于stack exchange,提问作者Charles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:11:00