Update app.py
Browse files
app.py
CHANGED
|
@@ -141,15 +141,14 @@ def main():
|
|
| 141 |
|
| 142 |
if uploaded_file is not None:
|
| 143 |
try:
|
| 144 |
-
# Step 1: Read the Excel file into a DataFrame
|
| 145 |
-
df = pd.read_excel(uploaded_file
|
| 146 |
|
| 147 |
-
# Step 2:
|
| 148 |
-
|
| 149 |
-
df.columns = [col.replace(".1", "_2").replace(".2", "_3") for col in df.columns]
|
| 150 |
|
| 151 |
-
# Step 3:
|
| 152 |
-
df =
|
| 153 |
|
| 154 |
# Step 4: Display the uploaded data
|
| 155 |
st.subheader("Uploaded Data")
|
|
@@ -272,7 +271,9 @@ def plot_intervention_statistics(intervention_stats):
|
|
| 272 |
st.pyplot(fig)
|
| 273 |
|
| 274 |
return fig
|
|
|
|
| 275 |
|
|
|
|
| 276 |
def compute_student_metrics(df):
|
| 277 |
# Filter DataFrame for sessions where intervention happened
|
| 278 |
intervention_df = df[df[INTERVENTION_COLUMN].str.strip().str.lower() == 'yes']
|
|
@@ -284,8 +285,12 @@ def compute_student_metrics(df):
|
|
| 284 |
student_metrics = {}
|
| 285 |
|
| 286 |
for col in student_columns:
|
| 287 |
-
|
| 288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 289 |
# Get the attendance data for the student
|
| 290 |
student_data = intervention_df[[col]].copy()
|
| 291 |
|
|
|
|
| 141 |
|
| 142 |
if uploaded_file is not None:
|
| 143 |
try:
|
| 144 |
+
# Step 1: Read the Excel file into a DataFrame
|
| 145 |
+
df = pd.read_excel(uploaded_file)
|
| 146 |
|
| 147 |
+
# Step 2: Manually handle duplicate columns
|
| 148 |
+
df.columns = pd.io.parsers.base.make_unique(df.columns)
|
|
|
|
| 149 |
|
| 150 |
+
# Step 3: Rename duplicate columns to make them more readable
|
| 151 |
+
df.columns = [f"{col.split('.')[0]}_{i}" if '.' in col else col for i, col in enumerate(df.columns, 1)]
|
| 152 |
|
| 153 |
# Step 4: Display the uploaded data
|
| 154 |
st.subheader("Uploaded Data")
|
|
|
|
| 271 |
st.pyplot(fig)
|
| 272 |
|
| 273 |
return fig
|
| 274 |
+
|
| 275 |
|
| 276 |
+
|
| 277 |
def compute_student_metrics(df):
|
| 278 |
# Filter DataFrame for sessions where intervention happened
|
| 279 |
intervention_df = df[df[INTERVENTION_COLUMN].str.strip().str.lower() == 'yes']
|
|
|
|
| 285 |
student_metrics = {}
|
| 286 |
|
| 287 |
for col in student_columns:
|
| 288 |
+
try:
|
| 289 |
+
# Extract student name or initials, removing any suffixes added for uniqueness
|
| 290 |
+
student_name = re.match(r'Student Attendance \[(.+?)\]', col.split('_')[0]).group(1)
|
| 291 |
+
except AttributeError:
|
| 292 |
+
st.warning(f"Unexpected column name format: {col}. Skipping this column.")
|
| 293 |
+
continue
|
| 294 |
# Get the attendance data for the student
|
| 295 |
student_data = intervention_df[[col]].copy()
|
| 296 |
|