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

如何让Gradio DataFrame的行可点击并实现行求和功能?

实现可点击行的DataFrame并计算行总和

可以实现,只需要利用Gradio DataFrame组件的select事件,结合文本组件展示计算结果。以下是修改后的完整代码:

import gradio as gr
import pandas as pd
import numpy as np

def generate_random_dataframe():
    # 生成随机DataFrame
    df = pd.DataFrame(np.random.rand(10, 5), columns=list('ABCDE'))
    return df

def calculate_row_sum(selected_row):
    # 计算选中行的总和,selected_row是包含行数据的列表
    if selected_row is None:
        return "请选择一行数据"
    row_sum = sum(selected_row)
    return f"选中行的总和为: {row_sum:.4f}"

with gr.Blocks() as demo:
    generate_button = gr.Button("生成随机DataFrame")
    
    # 创建DataFrame组件显示数据
    output_df = gr.DataFrame()
    # 创建文本组件显示行总和
    sum_display = gr.Textbox(label="行总和", placeholder="选中一行查看总和...")
    
    generate_button.click(fn=generate_random_dataframe, inputs=[], outputs=output_df)
    # 绑定DataFrame的行选中事件
    output_df.select(fn=calculate_row_sum, inputs=[output_df], outputs=sum_display, type="row")

demo.launch()

关键改动说明

  • 添加sum_display文本组件:用于展示选中行的计算结果,设置了标签和占位提示
  • 新增calculate_row_sum函数:接收选中的行数据(列表形式),计算总和后返回格式化的字符串,同时处理未选中行的情况
  • 绑定select事件:通过output_df.select()指定触发类型为row,当用户点击任意一行时,自动调用计算函数并更新文本组件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:12:37