import pandas as pd
import numpy as np

# Load the data into a DataFrame
df = pd.DataFrame({'Name': ['Ali', 'John', 'Gaurav', 'Raj', 'Ravi', 'Natasha', 'Aliya'],
                  'Age': [17, 17, 18, 17, 18, 17, 17],
                  'Gender': ['M', 'M', 'M', 'M', 'M', 'F', 'F'],
                  'Marks': [90, 76, np.nan, 74, 65, np.nan, 71]})

# Inspect the data
print(df.info())

# Handle missing values
df = df.replace(np.nan, -1)
print(df)

# Convert data types
try:
    df['Age'] = df['Age'].astype('int64')
    df['Marks'] = df['Marks'].astype('int64')
except ValueError:
    print('Cannot convert data types')

# Explore the data
print(df.describe())
print(df.groupby('Gender').mean())

# Pivot the data
pivoted_df = df.pivot_table(index='Name', columns='Gender', values='Marks', aggfunc='mean')
print(pivoted_df)
    
  



# Sort the data
df = df.sort_values(by=['Marks', 'Age'], ascending=[False, True])

# Rename columns
df = df.rename(columns={'Name': 'Student Name', 'Age': 'Student Age', 'Gender': 'Student Gender', 'Marks': 'Student Marks'})

df