有没有办法使渐变数据框的行可点击?

问题描述 投票:0回答:1

我有以下脚本

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

def generate_random_dataframe():
    # Generate a random DataFrame
    df = pd.DataFrame(np.random.rand(10, 5), columns=list('ABCDE'))
    return df

with gr.Blocks() as demo:
    generate_button = gr.Button("Generate Random DataFrame")
    
    # Create a DataFrame component to display the DataFrame
    output_df = gr.DataFrame()
    
    generate_button.click(fn=generate_random_dataframe, inputs=[], outputs=output_df)

demo.launch()

当运行并单击按钮时我得到了

enter image description here

我的问题是,有没有办法让这个数据框可点击? 例如,我单击一行,它会计算该行中所有数字的总和,并将其显示在下面的文本元素中

python gradio
1个回答
0
投票

是的!您可以向表添加点击监听器并从事件中获取行值

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


def generate_random_dataframe():
    # Generate a random DataFrame
    df = pd.DataFrame(np.random.rand(10, 5), columns=list('ABCDE'))
    return df


def df_select_callback(df: pd.DataFrame,  evt: gr.SelectData):
    return sum(evt.row_value)


with gr.Blocks() as demo:
    generate_button = gr.Button("Generate Random DataFrame")

    output_df = gr.DataFrame()
    sum_textarea = gr.Textbox("")
    generate_button.click(fn=generate_random_dataframe,
                          inputs=[], outputs=output_df)

    output_df.select(df_select_callback,
                     inputs=[output_df],
                     outputs=[sum_textarea])

demo.launch()
© www.soinside.com 2019 - 2024. All rights reserved.