Need help of the working of code

i am making a school project on examination management so it a basically a program that manages csv file records and all but my code just isnt working i just cannot understand why here is the code

import pandas as pd
import matplotlib.pyplot as plt
import os

FILE_PATH = "the path to the file/exam.csv"

def load_data():
    if os.path.exists(FILE_PATH):
        data = pd.read_csv(FILE_PATH)
        print("Data loaded successfully.")
        print(data.head())  
# Debug: print first few rows of the DataFrame
    else:
        print("File not found. Creating a new DataFrame.")
        columns = ["rollno", "name", "father_name", "adharrid", "age", "attempt", "lastattemptscore", "dateofbirth", "address", "phonenumber", "email"]
        data = pd.DataFrame(columns=columns)
    return data

def save_data(data):
    data.to_csv(FILE_PATH, index=False)
    print("Data saved successfully.")

def display_main_menu():
    print('*' * 80)
    print('                                  WELCOME TO EXAMINATION MANAGEMENT MENU    ')
    print('*' * 80)
    print('1. Show Examination Details\n')
    print('2. Show Data Columns \n')
    print('3. Display Top Records\n')
    print('4. Display Bottom Records\n')
    print('5. Display Specific Column\n')
    print('6. Add a New Record\n')
    print('7. Add a New Column\n')
    print('8. Delete a Column\n')
    print('9. Delete a Record\n')
    print('10. Update a Record\n')
    print('11. Move to Graph Menu\n')
    print('12. Exit\n')

def handle_main_choice(data, choice):
    if choice == 1:
        print(data)
    elif choice == 2:
        print(data.columns)
    elif choice == 3:
        n = int(input('Enter number of top records to display: '))
        print(data.head(n))
    elif choice == 4:
        n = int(input('Enter number of bottom records to display: '))
        print(data.tail(n))
    elif choice == 5:
        col_name = input('Enter column name to display: ')
        if col_name in data.columns:
            print(data[col_name])
        else:
            print(f'Column "{col_name}" does not exist.')
    elif choice == 6:
        new_record = {
            "rollno": input('Enter Roll Number: '),
            "name": input('Enter Name: '),
            "father_name": input('Enter Father Name: '),
            "adharrid": input('Enter Aadhar ID: '),
            "age": int(input('Enter Age: ')),
            "attempt": int(input('Enter Attempt Number: ')),
            "lastattemptscore": float(input('Enter Last Attempt Score: ')),
            "dateofbirth": input('Enter Date of Birth (YYYY-MM-DD): '),
            "address": input('Enter Address: '),
            "phonenumber": input('Enter Phone Number: '),
            "email": input('Enter Email: ')
        }
        new_df = pd.DataFrame([new_record])
        data = pd.concat([data, new_df], ignore_index=True)
        save_data(data)
        load_data()
    elif choice == 7:
        col_name = input('Enter new column name: ')
        default_value = input('Enter default value for the new column: ')
        if col_name not in data.columns:
            data[col_name] = default_value
            save_data(data)
        else:
            print(f'Column "{col_name}" already exists.')
    elif choice == 8:
        col_name = input('Enter column name to delete: ')
        if col_name in data.columns:
            data = data.drop(columns=[col_name])
            save_data(data)
        else:
            print(f'Column "{col_name}" does not exist.')
    elif choice == 9:
        index_no = int(input('Enter the index number of the record to delete: '))
        if index_no in data.index:
            data = data.drop(index_no)
            save_data(data)
        else:
            print(f'Index {index_no} does not exist.')
    elif choice == 10:
        index_no = int(input('Enter the index number of the record to update: '))
        if index_no in data.index:
            updated_record = {
                "rollno": input('Enter Roll Number: '),
                "name": input('Enter Name: '),
                "father_name": input('Enter Father Name: '),
                "adharrid": input('Enter Aadhar ID: '),
                "age": int(input('Enter Age: ')),
                "attempt": int(input('Enter Attempt Number: ')),
                "lastattemptscore": float(input('Enter Last Attempt Score: ')),
                "dateofbirth": input('Enter Date of Birth (YYYY-MM-DD): '),
                "address": input('Enter Address: '),
                "phonenumber": input('Enter Phone Number: '),
                "email": input('Enter Email: ')
            }
            data.loc[index_no] = updated_record
            save_data(data)
        else:
            print(f'Index {index_no} does not exist.')
    elif choice == 11:
        graph_menu(data)
    elif choice == 12:
        print("Exiting the system. Thank you!")
        return False
    return True

def display_graph_menu():
    print('*' * 80)
    print('                          GRAPH MENU                             ')
    print('*' * 80)
    print('1. Age Distribution Histogram\n')
    print('2. Attempt Distribution Bar Graph\n')
    print('3. Last Attempt Score Scatter Plot\n')
    print('4. Exit to Main Menu\n')

def handle_graph_choice(data, choice):
    if choice == 1:
        plt.hist(data['age'].dropna(), bins=10, edgecolor='black')
        plt.xlabel('Age')
        plt.ylabel('Frequency')
        plt.title('Age Distribution')
        plt.show()
    elif choice == 2:
        attempt_counts = data['attempt'].value_counts().sort_index()
        attempt_counts.plot(kind='bar')
        plt.xlabel('Attempt Number')
        plt.ylabel('Number of Records')
        plt.title('Attempt Distribution')
        plt.show()
    elif choice == 3:
        plt.scatter(data['attempt'], data['lastattemptscore'])
        plt.xlabel('Attempt Number')
        plt.ylabel('Last Attempt Score')
        plt.title('Last Attempt Score vs Attempt Number')
        plt.show()
    elif choice == 4:
        return False
    return True

def main():
    data = load_data()
    while True:
        display_main_menu()
        try:
            choice = int(input('Enter your choice: '))
            if not handle_main_choice(data, choice):
                break
        except ValueError:
            print("Invalid input. Please enter a number.")
    
    while True:
        display_graph_menu()
        try:
            choice = int(input('Enter your choice: '))
            if not handle_graph_choice(data, choice):
                break
        except ValueError:
            print("Invalid input. Please enter a number.")

if __name__ == "__main__":
    main()