我有以下脚本
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()
当运行并单击按钮时我得到了
我的问题是,有没有办法让这个数据框可点击? 例如,我单击一行,它会计算该行中所有数字的总和,并将其显示在下面的文本元素中
是的!您可以向表添加点击监听器并从事件中获取行值
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()