Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1088,43 +1088,44 @@ elif app_mode == "EDA":
|
|
1088 |
st.subheader("Data Transformation")
|
1089 |
transform_col = st.selectbox("Column to transform", df.select_dtypes(include=[np.number]).columns)
|
1090 |
transform_type = st.selectbox("Transformation", ["Log", "Square Root", "Z-score", "Standardization", "Normalization", "Box-Cox", "Inverse"])
|
1091 |
-
|
1092 |
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
|
1093 |
-
|
1094 |
if transform_col:
|
1095 |
sns.histplot(df[transform_col], bins=30, kde=True, ax=ax[0])
|
1096 |
ax[0].set_title('Before Transformation')
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1117 |
else:
|
1118 |
-
|
1119 |
-
|
1120 |
-
# Error handling for invalid transformations
|
1121 |
-
try:
|
1122 |
-
if transform_type == "Log" and (df[transform_col] <= 0).any():
|
1123 |
-
st.error("Log transformation is not applicable to non-positive values.")
|
1124 |
-
elif transform_type == "Box-Cox" and (df[transform_col] <= 0).any():
|
1125 |
-
st.error("Box-Cox transformation requires all values to be positive.")
|
1126 |
-
except Exception as e:
|
1127 |
-
st.error(f"Transformation failed: {str(e)}")
|
1128 |
|
1129 |
enhance_section_title("Export Options", "💾")
|
1130 |
st.subheader("💾 Export Options")
|
|
|
1088 |
st.subheader("Data Transformation")
|
1089 |
transform_col = st.selectbox("Column to transform", df.select_dtypes(include=[np.number]).columns)
|
1090 |
transform_type = st.selectbox("Transformation", ["Log", "Square Root", "Z-score", "Standardization", "Normalization", "Box-Cox", "Inverse"])
|
1091 |
+
|
1092 |
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
|
1093 |
+
|
1094 |
if transform_col:
|
1095 |
sns.histplot(df[transform_col], bins=30, kde=True, ax=ax[0])
|
1096 |
ax[0].set_title('Before Transformation')
|
1097 |
+
|
1098 |
+
if transform_type == "Log":
|
1099 |
+
df[transform_col] = np.log1p(df[transform_col])
|
1100 |
+
elif transform_type == "Square Root":
|
1101 |
+
df[transform_col] = np.sqrt(df[transform_col])
|
1102 |
+
elif transform_type == "Z-score":
|
1103 |
+
df[transform_col] = (df[transform_col] - df[transform_col].mean())/df[transform_col].std()
|
1104 |
+
elif transform_type == "Standardization":
|
1105 |
+
df[transform_col] = (df[transform_col] - df[transform_col].mean()) / df[transform_col].std()
|
1106 |
+
elif transform_type == "Normalization":
|
1107 |
+
df[transform_col] = (df[transform_col] - df[transform_col].min()) / (df[transform_col].max() - df[transform_col].min())
|
1108 |
+
elif transform_type == "Box-Cox":
|
1109 |
+
df[transform_col], _ = boxcox(df[transform_col] + 1) # Adding 1 to avoid log(0) error
|
1110 |
+
elif transform_type == "Inverse":
|
1111 |
+
df[transform_col] = 1 / df[transform_col]
|
1112 |
+
|
1113 |
+
sns.histplot(df[transform_col], bins=30, kde=True, ax=ax[1])
|
1114 |
+
ax[1].set_title('After Transformation')
|
1115 |
+
|
1116 |
+
st.pyplot(fig)
|
1117 |
+
|
1118 |
+
# Error handling for invalid transformations
|
1119 |
+
try:
|
1120 |
+
if transform_type == "Log" and (df[transform_col] <= 0).any():
|
1121 |
+
st.error("Log transformation is not applicable to non-positive values.")
|
1122 |
+
elif transform_type == "Box-Cox" and (df[transform_col] <= 0).any():
|
1123 |
+
st.error("Box-Cox transformation requires all values to be positive.")
|
1124 |
+
except Exception as e:
|
1125 |
+
st.error(f"Transformation failed: {str(e)}")
|
1126 |
else:
|
1127 |
+
st.warning("Please select a column for transformation.")
|
1128 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1129 |
|
1130 |
enhance_section_title("Export Options", "💾")
|
1131 |
st.subheader("💾 Export Options")
|