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