Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
def data_pre_processing(file_responses): | |
# Financial Weights are in per decas and NOT per cents | |
try: | |
# Define the columns to be processed | |
columns = [ | |
'''Your financial allocation for Problem 1: | |
Mention the percentage of your Tax Amount which you wish the Government would allocate through their annual budget, to implement a specific solution for your 1st problem.''', | |
'''Your financial allocation for Problem 2: | |
Mention the percentage of your Tax Amount which you wish the Government would allocate through their annual budget, to implement a solution specifically to your 2nd problem.''', | |
'''Your financial allocation for Problem 3: | |
Mention the percentage of your Tax Amount which you wish the Government would allocate through their annual budget, to implement a solution specifically to your 3rd problem.''' | |
] | |
# # Convert columns to numeric and fill NaN values with 0 | |
# for col in columns: | |
# file_responses[col] = pd.to_numeric(file_responses[col], errors='coerce').fillna(0) | |
# # Calculate the Total Allocation | |
# file_responses['Total Allocation'] = file_responses[columns].sum(axis=1) | |
# # Convert the Tax Payment column to numeric | |
# tax_payment_col = '''How much was your latest Tax payment (in U$D) ? | |
# Please try to be as accurate as possible: | |
# Eg.: If your last tax amount was INR 25,785/-; then convert it in U$D and enter only the amount as: 310. | |
# If you have never paid tax, consider putting in a realistic donation amount which wish to contribute towards helping yourself obtain the desired relief.''' | |
# file_responses[tax_payment_col] = pd.to_numeric(file_responses[tax_payment_col], errors='coerce').fillna(0) | |
# # Calculate Financial Token Weights | |
# for i, col in enumerate(columns, start=1): | |
# file_responses[f'Financial Token Weight for Problem {i}'] = ( | |
# file_responses[tax_payment_col] * file_responses[col] / file_responses['Total Allocation'] | |
# ).fillna(0) | |
return file_responses | |
except Exception as e: | |
return str(e) | |
def nlp_pipeline(original_df): | |
processed_df = data_pre_processing(original_df) | |
return processed_df | |
def process_excel(file): | |
try: | |
# Ensure the file path is correct | |
file_path = file.name if hasattr(file, 'name') else file | |
# Read the Excel file | |
df = pd.read_excel(file_path) | |
# Process the DataFrame | |
result_df = nlp_pipeline(df) | |
output_file = "OutPut_file.xlsx" | |
result_df.to_excel(output_file, index=False) | |
return output_file # Return the processed DataFrame as Excel file | |
except Exception as e: | |
return str(e) # Return the error message | |
# Define the Gradio interface | |
interface = gr.Interface( | |
fn=process_excel, # The function to process the uploaded file | |
inputs=gr.File(type="filepath", label="Upload Excel File"), # File upload input | |
outputs=gr.File(label="Download Processed Excel File"), # File download output | |
title="Excel File Uploader", | |
description="Upload an Excel file to process and download the result." | |
# outputs="dataframe", # Display the output as a DataFrame | |
# title="Excel File Uploader", | |
# description="Upload an Excel file to see the first few rows." | |
) | |
# Launch the interface | |
if __name__ == "__main__": | |
interface.launch() | |