ABDA / app.py
BalajiM's picture
Upload 2 files
eda6792 verified
import pandas as pd
import gradio as gr
def analyze_csv(file_obj):
# 1. Read the uploaded CSV
df = pd.read_csv(file_obj.name)
# 2. Extract basic shape
row_count = len(df)
col_count = len(df.columns)
# 3. Automatically calculate statistics (mean, min, max) and round to 2 decimals
summary_stats = df.describe().round(2)
# 4. Grab the first 5 rows for a preview
head_df = df.head()
# 5. Format the text report
report = f"### πŸ“Œ Data Overview\n* **Total Rows:** {row_count}\n* **Total Columns:** {col_count}\n\n"
report += "The tool has automatically processed the mathematical summary and extracted a data preview below."
return report, summary_stats, head_df
# Building the modern UI
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# πŸ“Š Automated Business Data Analyzer")
gr.Markdown("Upload any raw CSV file to instantly generate a statistical breakdown.")
with gr.Row():
file_input = gr.File(label="Upload CSV File here", file_types=[".csv"])
with gr.Row():
text_output = gr.Markdown()
with gr.Row():
stats_output = gr.Dataframe(label="Mathematical Summary (Averages, Min, Max)")
with gr.Row():
head_output = gr.Dataframe(label="Raw Data Preview (First 5 Rows)")
# Connect the upload button to the logic function
file_input.upload(fn=analyze_csv, inputs=file_input, outputs=[text_output, stats_output, head_output])
if __name__ == "__main__":
demo.launch()