2024-09-17 23:42:34 +04:00

105 KiB
Raw Blame History

Начало ЛР

Выгрузка данных из CSV в датафрейм

In [2]:
import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.read_csv(".//static//csv//students_adaptability_level_online_education.csv")
print(dataframe.columns)
Index(['Education Level', 'Institution Type', 'Gender', 'Age', 'Device',
       'IT Student', 'Location', 'Financial Condition', 'Internet Type',
       'Network Type', 'Flexibility Level'],
      dtype='object')

Диаграмма 1 (Круговая)

Данная диаграмма (круговая) отображает распределение людей по типу соединения к интернету (4G, 3G, 2G). Это позволяет сделать вывод о том, что сейчас в негородских поселениях преобладает хороший тип связи, а слабый имеет минимальное значение.

In [45]:
rural_df = dataframe[dataframe['Location'] == "Rural"]

network_type_rural_count = rural_df['Network Type'].value_counts()

plt.figure(figsize=(6,6))
plt.pie(network_type_rural_count, labels=network_type_rural_count.index, autopct='%1.1f%%')
plt.title("Распределение людей из негородских поселений по типу соединения")
Out[45]:
Text(0.5, 1.0, 'Распределение людей из негородских поселений по типу соединения')
No description has been provided for this image

Диаграмма 2 (Линейная)

Данная диаграмма отображает количество студентов в разных возрастных группах. Из нее можно сделать вывод, что в подростковом возрасте (10-15) люди менее интересуются IT направлением, но в возрасте 20-25 лет количество учеников IT направлений начинает преобладать над не IT сферой (и в это же время количество не IT студентов начинает убывать).

In [95]:
it_student_df = dataframe[dataframe['IT Student'] == "Yes"].copy()
nonit_student_df = dataframe[dataframe['IT Student'] == "No"].copy()

age_bins = range(10, 36, 5)


it_student_df['age_group'] = pd.cut(it_student_df['Age'], bins=age_bins)
it_student_count = it_student_df.groupby('age_group', observed=False)['IT Student'].value_counts().reset_index()
mean_count_it = it_student_count.groupby('age_group', observed=False)['count'].mean()

nonit_student_df['age_group'] = pd.cut(nonit_student_df['Age'], bins=age_bins)
nonit_student_count = nonit_student_df.groupby('age_group', observed=False)['IT Student'].value_counts().reset_index()
mean_count_nonit = nonit_student_count.groupby('age_group', observed=False)['count'].mean()

plt.figure(figsize=(10,6))
plt.plot(mean_count_it.index.astype(str), mean_count_it , marker='o', label='IT студент')
plt.plot(mean_count_nonit.index.astype(str), mean_count_nonit , marker='o', label='Не IT студент')
plt.xlabel("Возрастная группа")
plt.ylabel("Количество студентов")
plt.title('Количество студентов на IT и не IT направлении')
plt.xticks(rotation=45)
plt.legend()
Out[95]:
<matplotlib.legend.Legend at 0x7ba9f4ccf500>
No description has been provided for this image

Диаграмма 3 (Столбчатая)

Данная диаграмма отображает

In [ ]: