Data_summary / app.py
gfs1000's picture
Create app.py
21914e7
import gradio as gr
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
def trend_analysis(df, target_column):
# Handle categorical variables
categorical_columns = ['country', 'public/pro', 'language']
df = pd.get_dummies(df, columns=categorical_columns)
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(df.drop(target_column, axis=1), df[target_column], test_size=0.2, random_state=42)
# Train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Use the model to make predictions
df['prediction'] = model.predict(df.drop(target_column, axis=1))
return df
def process_csv(file_path):
try:
# Read CSV file
df = pd.read_csv(file_path, error_bad_lines=False)
# Perform trend analysis
target_column = 'unit price' # Replace with the name of your target column
df = trend_analysis(df, target_column)
# Save the processed DataFrame to a new CSV file (optional)
df.to_csv("processed_data.csv", index=False)
return "Processing completed. Check 'processed_data.csv' for results."
except Exception as e:
return f"Error: {str(e)}"
iface = gr.Interface(
fn=process_csv,
inputs=gr.File(),
outputs=gr.Textbox(),
live=True,
)
if __name__ == '__main__':
iface.launch()