Spaces:
Sleeping
Sleeping
import pandas as pd | |
import gradio as gr | |
def set_error(row): | |
if row.error not in [True, False]: | |
if not row.prompt_response: | |
return True | |
return False | |
return row.error | |
def get_tool_winning_rate(tools_df, inc_tools): | |
tools_inc = tools_df[tools_df['tool'].isin(inc_tools)] | |
tools_inc['error'] = tools_inc.apply(set_error, axis=1) | |
tools_non_error = tools_inc[tools_inc['error'] != True] | |
tools_non_error['currentAnswer'].replace('no', 'No', inplace=True) | |
tools_non_error['currentAnswer'].replace('yes', 'Yes', inplace=True) | |
tools_non_error = tools_non_error[tools_non_error['currentAnswer'].isin(['Yes', 'No'])] | |
tools_non_error = tools_non_error[tools_non_error['vote'].isin(['Yes', 'No'])] | |
tools_non_error['win'] = tools_non_error['currentAnswer'] == tools_non_error['vote'] | |
tools_non_error['win'] = tools_non_error['win'].astype(int) | |
tools_non_error.columns = tools_non_error.columns.astype(str) | |
wins = tools_non_error.groupby(['tool', 'request_month_year_week', 'win']).size().unstack().fillna(0) | |
wins['win_perc'] = (wins[1] / (wins[0] + wins[1]))*100 | |
wins.reset_index(inplace=True) | |
wins['total_request'] = wins[0] + wins[1] | |
wins.columns = wins.columns.astype(str) | |
return wins | |
def get_overall_winning_rate(wins_df): | |
overall_wins = wins_df.groupby('request_month_year_week').agg({ | |
"0": 'sum', | |
"1": 'sum', | |
"win_perc": 'mean', | |
"total_request": 'sum' | |
}).rename(columns={"0": 'losses', "1": 'wins'}).reset_index() | |
return overall_wins | |
def plot_winning_trades( | |
wins_df, | |
winning_selector="win_perc" | |
): | |
return gr.BarPlot( | |
title="Winning Rate", | |
x_title="Date", | |
y_title=winning_selector, | |
show_label=True, | |
interactive=True, | |
show_actions_button=True, | |
tooltip=["request_month_year_week", winning_selector], | |
width=800, | |
value=wins_df, | |
x="request_month_year_week", | |
y=winning_selector | |
) | |
def plot_winning_plot_by_tool(wins_df, tool): | |
return gr.BarPlot( | |
title="Winning Rate", | |
x_title="Week", | |
y_title="Winning Rate", | |
x="request_month_year_week", | |
y="win_perc", | |
value=wins_df[wins_df['tool'] == tool], | |
width=800, | |
show_label=True, | |
interactive=True, | |
show_actions_button=True, | |
tooltip=["request_month_year_week", "win_perc"] | |
) | |