hackathon / app.py
Ashar086's picture
Update app.py
f158d04 verified
raw
history blame
3.25 kB
import streamlit as st
import pandas as pd
from data_processor import DataProcessor
from visualizer import Visualizer
from analyzer import Analyzer
from openai_agent import OpenAIAgent
from time_series_analyzer import TimeSeriesAnalyzer
from machine_learning import MachineLearning
from text_analyzer import TextAnalyzer
from geospatial_analyzer import GeospatialAnalyzer
from utils import load_data, save_data
st.set_page_config(page_title="AI-Powered Data Analysis", layout="wide")
st.title("AI-Powered Data Analysis and Visualization")
# File uploader
uploaded_file = st.sidebar.file_uploader("Choose a CSV file", type="csv")
if uploaded_file is not None:
df = load_data(uploaded_file)
# Initialize components
data_processor = DataProcessor(df)
visualizer = Visualizer()
analyzer = Analyzer()
openai_agent = OpenAIAgent()
time_series_analyzer = TimeSeriesAnalyzer()
ml = MachineLearning()
text_analyzer = TextAnalyzer()
geo_analyzer = GeospatialAnalyzer()
# Sidebar for feature selection
feature = st.sidebar.radio(
"Select a feature",
["Data Overview", "Data Cleaning", "Data Visualization", "Data Analysis",
"AI Insights", "Time Series Analysis", "Machine Learning",
"Text Analysis", "Geospatial Analysis", "Custom AI Tasks"]
)
if feature == "Data Overview":
st.header("Data Overview")
st.write("Dataset shape:", df.shape)
st.write("Columns:", df.columns.tolist())
st.write("Sample data:")
st.write(df.head())
if st.checkbox("Show data types"):
st.write(df.dtypes)
if st.checkbox("Show summary statistics"):
st.write(df.describe())
elif feature == "Data Cleaning":
st.header("Data Cleaning and Preprocessing")
df_cleaned = data_processor.clean_data()
st.write("Cleaned data shape:", df_cleaned.shape)
st.write(df_cleaned.head())
if st.button("Save Cleaned Data"):
save_data(df_cleaned, "cleaned_data.csv")
st.success("Cleaned data saved successfully!")
elif feature == "Data Visualization":
st.header("Data Visualization")
visualizer.create_visualizations(df)
elif feature == "Data Analysis":
st.header("Data Analysis")
analyzer.perform_analysis(df)
elif feature == "AI Insights":
st.header("AI-Powered Insights")
openai_agent.generate_insights(df)
elif feature == "Time Series Analysis":
st.header("Time Series Analysis")
time_series_analyzer.analyze(df)
elif feature == "Machine Learning":
st.header("Machine Learning")
ml.perform_ml_tasks(df)
elif feature == "Text Analysis":
st.header("Text Analysis")
text_analyzer.analyze_text(df)
elif feature == "Geospatial Analysis":
st.header("Geospatial Analysis")
geo_analyzer.analyze_geospatial_data(df)
elif feature == "Custom AI Tasks":
st.header("Custom AI Tasks")
openai_agent.custom_ai_task(df)
else:
st.write("Please upload a CSV file to get started.")
# Add a footer
st.sidebar.markdown("---")
st.sidebar.info("Developed by Your Company Name")