105 KiB
105 KiB
Начало ЛР¶
Выгрузка данных из 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)
Диаграмма 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]:
Диаграмма 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]:
Диаграмма 3 (Столбчатая)¶
Данная диаграмма отображает
In [ ]: