{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### FAHAD HUSSAIN SADAT\n", "### BSDSF21M014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loading The Model " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cleaned Morning Data:\n", " A1 Q1 A2 Q2 A3 A4 Q3 Mid AWS Labs Q4 A5 Q5 \\\n", "0 10 14.0 10 18 NaN 10.0 15.0 20.1250 9.0 16.0 NaN 4.0 \n", "1 10 14.5 10 0 95.0 10.0 28.0 28.4375 9.0 35.0 95.0 NaN \n", "2 10 0.0 0 0 55.0 0.0 NaN 22.7500 5.0 NaN NaN NaN \n", "3 10 0.0 0 10 90.0 10.0 28.0 28.0000 5.0 24.0 90.0 NaN \n", "4 10 15.0 10 25 NaN 10.0 20.0 28.4375 10.0 22.0 NaN NaN \n", "\n", " A6 Final Unnamed: 17 \n", "0 NaN 24.000000 54 \n", "1 95.0 34.909091 84 \n", "2 NaN 30.909091 59 \n", "3 100.0 35.272727 81 \n", "4 NaN 24.727273 63 \n", "\n", "Cleaned Afternoon Data:\n", " A1 Q1 A2 Q2 A3 A4 Q3 Mid AWS Labs Q4 A5 \\\n", "0 10.0 13.5 10.0 22.0 100.0 10.0 31.0 24.0625 9.0 13.0 95.0 \n", "1 0.0 0.0 0.0 0.0 NaN NaN NaN 0.0000 NaN NaN NaN \n", "2 0.0 0.0 0.0 0.0 NaN NaN NaN 0.0000 NaN NaN NaN \n", "3 10.0 14.5 10.0 0.0 40.0 10.0 16.0 22.7500 8.0 12.0 60.0 \n", "4 9.0 13.5 0.0 23.0 100.0 10.0 22.0 29.3125 7.0 29.0 90.0 \n", "\n", " Q5 A6 Final Total \n", "0 9.0 65.0 28.727273 74 \n", "1 NaN NaN NaN 0 \n", "2 NaN NaN NaN 0 \n", "3 3.0 NaN 25.090909 60 \n", "4 10.0 NaN 31.272727 77 \n" ] } ], "source": [ "import pandas as pd\n", "\n", "# Loading the cloud computing dataset\n", "file_path = 'ccdata.xlsx'\n", "\n", "morning_data = pd.read_excel(file_path, sheet_name='cloud computing morning', skiprows=1)\n", "afternoon_data = pd.read_excel(file_path, sheet_name='cloud computing afternoon', skiprows=1)\n", "\n", "\n", "morning_data = morning_data[1:].reset_index(drop=True)\n", "afternoon_data = afternoon_data[1:].reset_index(drop=True)\n", "\n", "columns_to_drop = ['Sr. No.', 'Roll Number', 'Name']\n", "morning_data_cleaned = morning_data.drop(columns=columns_to_drop)\n", "afternoon_data_cleaned = afternoon_data.drop(columns=columns_to_drop)\n", "\n", "morning_data_cleaned = morning_data_cleaned.apply(pd.to_numeric, errors='coerce')\n", "afternoon_data_cleaned = afternoon_data_cleaned.apply(pd.to_numeric, errors='coerce')\n", "\n", "print(\"Cleaned Morning Data:\")\n", "print(morning_data_cleaned.head())\n", "\n", "print(\"\\nCleaned Afternoon Data:\")\n", "print(afternoon_data_cleaned.head())\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def apply_weightage(data, weights, max_marks):\n", " # Drop irrelevant columns\n", " irrelevant_columns = ['Sr. No.', 'Roll Number', 'Name']\n", " columns_to_drop = [col for col in irrelevant_columns if col in data.columns]\n", " data = data.drop(columns=columns_to_drop, errors='ignore')\n", " \n", " for col, weight in weights.items():\n", " if col in data.columns:\n", " data[col] = pd.to_numeric(data[col], errors='coerce') \n", " data[col] = (data[col] / max_marks[col]) * weight \n", " \n", " data = data.fillna(0)\n", " \n", " return data\n", "\n", "weights = {\n", " 'A1': 1, 'Q1': 1.5, 'A2': 1, 'Q2': 1.5, 'A3': 1,\n", " 'A4': 4, 'Q3': 1.5, 'Mid': 35, 'AWS Labs': 3,\n", " 'Q4': 1.25, 'A5': 4, 'Q5': 1.25, 'A6': 4, 'Final': 40\n", "}\n", "max_marks = {\n", " 'A1': 10, 'Q1': 21, 'A2': 10, 'Q2': 30, 'A3': 100,\n", " 'A4': 10, 'Q3': 41, 'Mid': 35, 'AWS Labs': 10,\n", " 'Q4': 40, 'A5': 100, 'Q5': 20, 'A6': 100, 'Final': 40\n", "}\n", "morning_data_weighted = apply_weightage(morning_data_cleaned, weights,max_marks)\n", "afternoon_data_weighted = apply_weightage(afternoon_data_cleaned, weights,max_marks)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### After Normalizing" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | A1 | \n", "Q1 | \n", "A2 | \n", "Q2 | \n", "A3 | \n", "A4 | \n", "Q3 | \n", "Mid | \n", "AWS Labs | \n", "Q4 | \n", "A5 | \n", "Q5 | \n", "A6 | \n", "Final | \n", "Unnamed: 17 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1.0 | \n", "1.000000 | \n", "1.0 | \n", "0.90 | \n", "0.00 | \n", "4.0 | \n", "0.548780 | \n", "20.1250 | \n", "2.7 | \n", "0.50000 | \n", "0.0 | \n", "0.25 | \n", "0.0 | \n", "24.000000 | \n", "54 | \n", "
1 | \n", "1.0 | \n", "1.035714 | \n", "1.0 | \n", "0.00 | \n", "0.95 | \n", "4.0 | \n", "1.024390 | \n", "28.4375 | \n", "2.7 | \n", "1.09375 | \n", "3.8 | \n", "0.00 | \n", "3.8 | \n", "34.909091 | \n", "84 | \n", "
2 | \n", "1.0 | \n", "0.000000 | \n", "0.0 | \n", "0.00 | \n", "0.55 | \n", "0.0 | \n", "0.000000 | \n", "22.7500 | \n", "1.5 | \n", "0.00000 | \n", "0.0 | \n", "0.00 | \n", "0.0 | \n", "30.909091 | \n", "59 | \n", "
3 | \n", "1.0 | \n", "0.000000 | \n", "0.0 | \n", "0.50 | \n", "0.90 | \n", "4.0 | \n", "1.024390 | \n", "28.0000 | \n", "1.5 | \n", "0.75000 | \n", "3.6 | \n", "0.00 | \n", "4.0 | \n", "35.272727 | \n", "81 | \n", "
4 | \n", "1.0 | \n", "1.071429 | \n", "1.0 | \n", "1.25 | \n", "0.00 | \n", "4.0 | \n", "0.731707 | \n", "28.4375 | \n", "3.0 | \n", "0.68750 | \n", "0.0 | \n", "0.00 | \n", "0.0 | \n", "24.727273 | \n", "63 | \n", "