150 KiB
150 KiB
In [1]:
import pandas as pd
# загрузка данных
df = pd.read_csv("data/students_education.csv")
# сохранение данных
df.to_csv("lab1.csv")
In [2]:
# получение сведений о датафрейме
df.info()
In [3]:
df.dtypes
Out[3]:
In [4]:
# вывод первых 100 строк из столбца Education Level
education = df.iloc[0:100, 0]
print(education)
In [5]:
# сортировка датафрейма по возрасту
sorted_df = df.sort_values(by="Age")
print(sorted_df)
In [6]:
# вывод студентов, которым 18 лет и больше
Age = df[df['Age'] >= 18]
print(Age)
In [7]:
df.drop(['Location'], axis=1).head()
Out[7]:
In [8]:
# добавление нового столбца Возрастная группа
def age_group(value):
if value < 18:
return "young"
else:
return "average"
df['age_group'] = df['Age'].map(age_group)
display(df)
In [9]:
# удаление строк с пустыми значениями
df_cleaned = df.dropna()
print(df_cleaned)
In [10]:
# Вычисление моды (наиболее часто встречающегося значения) для пустых значений
mode_Financial = df['Financial Condition'].mode()[0]
df.fillna({'Financial Condition':mode_Financial}, inplace=True)
print(df)
In [11]:
# линейная диаграмма (средний возраст по уровню образования)
import matplotlib.pyplot as plt
plt.plot(df[["Education Level", "Age"]].groupby("Education Level").mean())
plt.show()
In [12]:
# гистограмма
df.plot.hist(column=["Age"], bins=80)
Out[12]:
In [13]:
# ящик с усами
df.plot.box(column="Age", by="Gender", figsize=(10, 8))
Out[13]:
In [14]:
# диаграмма с областями
data = (df[[ "Education Level", "Age"]].groupby(['Education Level']).mean())
data.plot.area()
Out[14]:
In [15]:
# диаграмма рассеяния
df.plot.scatter(x ="Age", y ="Education Level")
Out[15]:
In [16]:
# круговая диаграмма
data = (df[[ "Device", "Age"]].groupby(['Device']).count())
data.plot.pie(x ='Device', y ='Age')
Out[16]: