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()