AIM-PIbd-31-Razubaev-S-M/Lab1/lab1.ipynb
2024-09-27 22:48:08 +04:00

166 KiB
Raw Permalink Blame History

Лабораторная 1

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

In [6]:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(".//static//scv//diabetes.csv")
print(df.columns)
Index(['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin',
       'BMI', 'DiabetesPedigreeFunction', 'Age', 'Outcome'],
      dtype='object')

Посмотрим краткое содержание датасета. Видим, что датасет состоит из 768 строк и 9 столбцов

In [7]:
df.info()
df.head()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 768 entries, 0 to 767
Data columns (total 9 columns):
 #   Column                    Non-Null Count  Dtype  
---  ------                    --------------  -----  
 0   Pregnancies               768 non-null    int64  
 1   Glucose                   768 non-null    int64  
 2   BloodPressure             768 non-null    int64  
 3   SkinThickness             768 non-null    int64  
 4   Insulin                   768 non-null    int64  
 5   BMI                       768 non-null    float64
 6   DiabetesPedigreeFunction  768 non-null    float64
 7   Age                       768 non-null    int64  
 8   Outcome                   768 non-null    int64  
dtypes: float64(2), int64(7)
memory usage: 54.1 KB
Out[7]:
Pregnancies Glucose BloodPressure SkinThickness Insulin BMI DiabetesPedigreeFunction Age Outcome
0 6 148 72 35 0 33.6 0.627 50 1
1 1 85 66 29 0 26.6 0.351 31 0
2 8 183 64 0 0 23.3 0.672 32 1
3 1 89 66 23 94 28.1 0.167 21 0
4 0 137 40 35 168 43.1 2.288 33 1

Группируем данные по возрасту и вычисляем среднее значение глюкозы для каждой возрастной группы

In [9]:
glucose_by_age = df.groupby(['Age'])['BloodPressure'].mean()

glucose_by_age.plot(kind='bar', figsize=(14, 8), width=0.6)
plt.title('Уровень глюкозы с возрастом')
plt.xlabel('Возраст')
plt.ylabel('Уровень глюкозы')
plt.xticks(rotation=0)
plt.show()
No description has been provided for this image

Данная диаграмма отображает среднее количество глюкозы для каждой возрастной группы, что позволяет сделать вывод о том, как уровень глюкозы изменяется с возрастом.

In [10]:
plt.figure(figsize=(10, 6))
plt.scatter(df['Age'], df['BloodPressure'], alpha=0.5)
plt.title('Уровень давления относительно возраста')
plt.xlabel('Возраст')
plt.ylabel('Уровень давления')
plt.grid(True)
plt.show()
No description has been provided for this image

Данная диаграмма отображает уровень давления относительно возраста, что позволяет сделать вывод о том, как уровень давления изменяется с возрастом.

In [12]:
subset_df = df.iloc[0:30]
insulin = subset_df.groupby('Age')['Insulin'].mean()
bmi = subset_df.groupby('Age')['BMI'].mean()

average_df = pd.DataFrame({
    'Insulin': insulin,
    'BMI': bmi
})

plt.figure(figsize=(10, 6))
average_df.plot.line()
plt.title('Среднее значение инсулина и индекса тела по возрасту')
plt.xlabel('Возраст')
plt.ylabel('Среднее значение')
plt.grid(True)
plt.show()
<Figure size 1000x600 with 0 Axes>
No description has been provided for this image

Данный график отображает среднее значение инсулина и индекса тела по возрасту, что позволяет сделать вывод о том, как эти показатели изменяются с возрастом.