Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import matplotlib.pyplot as plt | |
| # Load the cleaned dataset | |
| def load_data(): | |
| try: | |
| df = pd.read_csv('cleaned_dataset.csv') | |
| return df | |
| except FileNotFoundError: | |
| st.error("The dataset file was not found. Please ensure 'cleaned_dataset.csv' is in the correct location.") | |
| return None | |
| # Initialize dataset | |
| df_cleaned = load_data() | |
| if df_cleaned is not None: | |
| # Calculate district summary | |
| district_summary = df_cleaned.groupby('District').sum(numeric_only=True).reset_index() | |
| # Calculate admission rates | |
| district_summary['Minorities Admission Rate'] = district_summary['Minorities Admitted'] / district_summary['Minorities Sanctioned'] | |
| district_summary['Non-Minorities Admission Rate'] = district_summary['Non-Minorities Admitted'] / district_summary['Non-Minorities Sanctioned'] | |
| # Function to display the initial dashboard | |
| def show_dashboard(summary): | |
| st.title("Telangana Colleges Admissions Dashboard") | |
| # Display general insights | |
| st.header("General Insights") | |
| st.write(df_cleaned.describe()) | |
| # Filter by district | |
| district = st.selectbox("Select District", summary['District'].unique()) | |
| filtered_summary = summary[summary['District'] == district] | |
| st.header(f"Admission Details for {district}") | |
| st.write(filtered_summary) | |
| # Graph 1: Minorities - Sanctioned vs Admitted | |
| st.header('Minorities: Sanctioned vs Admitted') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Minorities Sanctioned'], label='Sanctioned', color='blue') | |
| ax.bar(summary['District'], summary['Minorities Admitted'], label='Admitted', color='green') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Minorities: Sanctioned vs Admitted') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 2: Non-Minorities - Sanctioned vs Admitted | |
| st.header('Non-Minorities: Sanctioned vs Admitted') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Non-Minorities Sanctioned'], label='Sanctioned', color='blue') | |
| ax.bar(summary['District'], summary['Non-Minorities Admitted'], label='Admitted', color='green') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Non-Minorities: Sanctioned vs Admitted') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 3: Grand Total - Sanctioned vs Admitted | |
| st.header('Grand Total: Sanctioned vs Admitted') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Grand Total Sanctioned'], label='Sanctioned', color='blue') | |
| ax.bar(summary['District'], summary['Grand Total Admitted'], label='Admitted', color='green') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Grand Total: Sanctioned vs Admitted') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 4: Minorities - Vacancies | |
| st.header('Minorities: Vacancies') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Minorities Vacancies'], label='Vacancies', color='red') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Minorities: Vacancies') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 5: Non-Minorities - Vacancies | |
| st.header('Non-Minorities: Vacancies') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Non-Minorities Vacancies'], label='Vacancies', color='red') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Non-Minorities: Vacancies') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 6: Grand Total - Vacancies | |
| st.header('Grand Total: Vacancies') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Grand Total Vacancies'], label='Vacancies', color='red') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Grand Total: Vacancies') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 7: Minorities Admission Rate | |
| st.header('Minorities Admission Rate') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Minorities Admission Rate'], label='Admission Rate', color='purple') | |
| ax.set_ylabel('Admission Rate') | |
| ax.set_xlabel('District') | |
| ax.set_title('Minorities Admission Rate') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 8: Non-Minorities Admission Rate | |
| st.header('Non-Minorities Admission Rate') | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], summary['Non-Minorities Admission Rate'], label='Admission Rate', color='orange') | |
| ax.set_ylabel('Admission Rate') | |
| ax.set_xlabel('District') | |
| ax.set_title('Non-Minorities Admission Rate') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 9: Total Sanctioned Seats (Minorities + Non-Minorities) | |
| st.header('Total Sanctioned Seats') | |
| total_sanctioned = summary['Minorities Sanctioned'] + summary['Non-Minorities Sanctioned'] | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], total_sanctioned, label='Total Sanctioned', color='blue') | |
| ax.set_ylabel('Number of Seats') | |
| ax.set_xlabel('District') | |
| ax.set_title('Total Sanctioned Seats') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Graph 10: Total Admitted Students (Minorities + Non-Minorities) | |
| st.header('Total Admitted Students') | |
| total_admitted = summary['Minorities Admitted'] + summary['Non-Minorities Admitted'] | |
| fig, ax = plt.subplots() | |
| ax.bar(summary['District'], total_admitted, label='Total Admitted', color='green') | |
| ax.set_ylabel('Number of Students') | |
| ax.set_xlabel('District') | |
| ax.set_title('Total Admitted Students') | |
| ax.legend() | |
| plt.xticks(rotation=90) | |
| st.pyplot(fig) | |
| # Main Streamlit app | |
| def main(): | |
| st.sidebar.title("Navigation") | |
| page = st.sidebar.radio("Go to", ["Dashboard"]) | |
| if page == "Dashboard": | |
| show_dashboard(district_summary) | |
| if __name__ == "__main__": | |
| main() | |