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

Python版Shiny是否存在可回调选中行的交互式表格组件?

Python中支持交互式表格行选择的库

Python里确实有不少支持交互式表格行选择的工具,主要集中在Web应用开发框架中,以下是常用的选项:

Dash 框架相关

  • Dash DataTable:Dash官方自带的表格组件,原生支持单选、多选行选择,能直接将选中行的数据作为回调函数的输入源。
    示例代码片段:
    from dash import Dash, dash_table, Input, Output, callback
    import pandas as pd
    
    app = Dash(__name__)
    df = pd.read_csv('your_data.csv')
    
    app.layout = dash_table.DataTable(
        data=df.to_dict('records'),
        columns=[{'name': i, 'id': i} for i in df.columns],
        row_selectable='multi',  # 支持多选,也可设为'single'单选
        id='selectable-table'
    )
    
    @callback(
        Output('output-div', 'children'),
        Input('selectable-table', 'selected_rows')
    )
    def display_selected_rows(selected_rows):
        return f"选中了 {len(selected_rows)} 行数据"
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    

Streamlit 框架相关

  • streamlit-aggrid:基于AG Grid的第三方组件,功能强大,支持行选择、筛选、排序等多种交互,能直接获取选中行的完整数据,是Streamlit生态里做交互式表格的热门选择。
    示例代码片段:
    import streamlit as st
    from st_aggrid import AgGrid, GridOptionsBuilder
    import pandas as pd
    
    df = pd.read_csv('your_data.csv')
    gb = GridOptionsBuilder.from_dataframe(df)
    gb.configure_selection('multiple', use_checkbox=True)  # 开启多选+复选框
    grid_options = gb.build()
    
    grid_response = AgGrid(df, gridOptions=grid_options)
    selected_rows = grid_response['selected_rows']
    if selected_rows:
        st.write("选中的行数据:")
        st.dataframe(pd.DataFrame(selected_rows))
    
  • 原生st.dataframe:Streamlit自带的st.dataframe支持交互式行选择,结合st.session_state可以捕获选中行的信息(需注意版本兼容性,较新版本支持该特性)。

Panel 框架相关

  • Panel AG Grid:Panel框架下的AG Grid封装组件,支持行选择、编辑等交互,可将选中行数据绑定到后续的分析或可视化逻辑中。
  • Panel DataFrame:Panel原生的表格组件,通过配置selection_mode参数开启行选择,配合回调函数获取选中数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:25:04