Загрузка данных


import pandas as pd
import matplotlib.pyplot as plt

# 1. ВСТАВЬ СВОИ РЕАЛЬНЫЕ ДАННЫЕ
# минимум 5 предметов!

my_data = {
    'subject': [
        'Математика',
        'Информатика',
        'Английский',
        'История',
        'Физика',
        # добавь свои предметы
    ],
    'grade': [
        5,
        4,
        5,
        3,
        4,
        # вставь свои оценки
    ],
    'missed_classes': [
        2,
        0,
        1,
        3,
        2,
        # пропущенные занятия
    ],
    'control_type': [
        'экзамен',
        'зачет',
        'экзамен',
        'зачет',
        'экзамен',
        # тип контроля
    ]
}

# 2. СОЗДАНИЕ DataFrame
df = pd.DataFrame(my_data)

# 3. УСТАНОВКА ИНДЕКСА
df.set_index('subject', inplace=True)

# 4. ДОБАВЛЕНИЕ НОВОГО СТОЛБЦА
# пример: "риск" (чем ниже оценка и больше пропусков — тем выше риск)
df['risk_score'] = (6 - df['grade']) + df['missed_classes']

# 5. ГРУППИРОВКА И АГРЕГАЦИЯ
grouped = df.groupby('control_type').agg({
    'grade': ['mean', 'min', 'max'],
    'missed_classes': ['sum', 'mean']
})

print("Группировка:")
print(grouped)

# 6. КОРРЕЛЯЦИЯ
correlation = df['grade'].corr(df['missed_classes'])
print("\nКорреляция между оценками и пропусками:", correlation)

# 7. ГРАФИК
df['grade'].plot(kind='bar')

plt.title('Оценки по предметам')
plt.xlabel('Предмет')
plt.ylabel('Оценка')
plt.xticks(rotation=45)
plt.show()

# 8. ТЕКСТОВЫЙ ВЫВОД (ОБЯЗАТЕЛЬНО НАПИШИ СВОЙ!)
print("\nВывод:")
print("ЗДЕСЬ НАПИШИ СВОЙ АНАЛИЗ (5–10 предложений)")