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
相关产品推荐
相关产品推荐

