bhagwandas commited on
Commit
b9c56e7
Β·
verified Β·
1 Parent(s): c966df4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -2
app.py CHANGED
@@ -31,9 +31,10 @@ if uploaded_file:
31
  df = pd.read_csv(uploaded_file)
32
  st.success("βœ… File uploaded and loaded!")
33
 
34
- # Basic Preview
35
  st.subheader("πŸ“ƒ Data Preview")
36
- st.dataframe(df.head())
 
37
 
38
  # Descriptive Stats
39
  st.subheader("πŸ“Š Descriptive Statistics")
@@ -46,6 +47,46 @@ if uploaded_file:
46
  sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f", ax=ax)
47
  st.pyplot(fig)
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  # Anomaly Detection
50
  st.subheader("⚠️ Anomaly Detection using Isolation Forest")
51
  num_df = df.select_dtypes(include='number').dropna()
 
31
  df = pd.read_csv(uploaded_file)
32
  st.success("βœ… File uploaded and loaded!")
33
 
34
+ # Custom column selection for preview
35
  st.subheader("πŸ“ƒ Data Preview")
36
+ selected_columns = st.multiselect("Select columns to preview", df.columns.tolist(), default=df.columns.tolist()[:5])
37
+ st.dataframe(df[selected_columns].head())
38
 
39
  # Descriptive Stats
40
  st.subheader("πŸ“Š Descriptive Statistics")
 
47
  sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f", ax=ax)
48
  st.pyplot(fig)
49
 
50
+ # Technical Visualizations
51
+ st.subheader("πŸ“Š Technical Graphs")
52
+ numeric_columns = df.select_dtypes(include='number').columns.tolist()
53
+
54
+ # Time Series Plot
55
+ selected_graph_column = st.selectbox("Select a parameter for time series plot", numeric_columns)
56
+ time_column = st.selectbox("Select time/index column (optional)", ['Index'] + df.columns.tolist(), index=0)
57
+
58
+ fig2, ax2 = plt.subplots(figsize=(10, 4))
59
+ if time_column != 'Index':
60
+ try:
61
+ df[time_column] = pd.to_datetime(df[time_column])
62
+ df_sorted = df.sort_values(by=time_column)
63
+ ax2.plot(df_sorted[time_column], df_sorted[selected_graph_column])
64
+ ax2.set_xlabel(time_column)
65
+ except:
66
+ ax2.plot(df[selected_graph_column])
67
+ ax2.set_xlabel("Index")
68
+ else:
69
+ ax2.plot(df[selected_graph_column])
70
+ ax2.set_xlabel("Index")
71
+ ax2.set_title(f"Trend Over Time: {selected_graph_column}")
72
+ ax2.set_ylabel(selected_graph_column)
73
+ st.pyplot(fig2)
74
+
75
+ # Pairplot
76
+ if len(numeric_columns) > 1:
77
+ st.subheader("πŸ”„ Pairwise Parameter Relationships")
78
+ sampled_df = df[numeric_columns].sample(n=200, random_state=1) if len(df) > 200 else df[numeric_columns]
79
+ pair_fig = sns.pairplot(sampled_df)
80
+ st.pyplot(pair_fig)
81
+
82
+ # Boxplots
83
+ st.subheader("πŸ“ˆ Distribution & Outliers per Parameter")
84
+ selected_box_column = st.selectbox("Select parameter for boxplot", numeric_columns)
85
+ fig3, ax3 = plt.subplots()
86
+ sns.boxplot(y=df[selected_box_column], ax=ax3)
87
+ ax3.set_title(f"Boxplot: {selected_box_column}")
88
+ st.pyplot(fig3)
89
+
90
  # Anomaly Detection
91
  st.subheader("⚠️ Anomaly Detection using Isolation Forest")
92
  num_df = df.select_dtypes(include='number').dropna()