AIM-PIbd-32-Chubykina-P-P/lab_1/lab1.ipynb

78 KiB
Raw Blame History

Начало лабораторной работы

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

In [2]:
import pandas as pd 
df = pd.read_csv("..//static//csv//heart_2020_cleaned.csv")
print(df.columns)
Index(['HeartDisease', 'BMI', 'Smoking', 'AlcoholDrinking', 'Stroke',
       'PhysicalHealth', 'MentalHealth', 'DiffWalking', 'Sex', 'AgeCategory',
       'Race', 'Diabetic', 'PhysicalActivity', 'GenHealth', 'SleepTime',
       'Asthma', 'KidneyDisease', 'SkinCancer'],
      dtype='object')
In [16]:
import matplotlib.pyplot as plt
import pandas as pd 
df = pd.read_csv("..//static//csv//heart_2020_cleaned.csv")

labels = 'Курящие', 'Некурящие'
sizes = [df[df["Smoking"] == "Yes"].shape[0],df[df["Smoking"] == "No"].shape[0]]

print(len([df[df["Smoking"] == "Yes"].count(),df[df["Smoking"] == "No"].count()]))

plt.pie(sizes, labels=labels)
plt.show()
2
No description has been provided for this image
In [17]:
import matplotlib.pyplot as plt
import pandas as pd 
df = pd.read_csv("..//static//csv//heart_2020_cleaned.csv")

labels = 'Пьющие', 'Непьющие'
sizes = [df[df["AlcoholDrinking"] == "Yes"].shape[0],df[df["AlcoholDrinking"] == "No"].shape[0]]

plt.pie(sizes, labels=labels)
plt.show()
No description has been provided for this image

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

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

df = pd.read_csv("..//static//csv//heart_2020_cleaned.csv")

plt.hist(df["BMI"], bins=30, edgecolor='black')
plt.xlabel('BMI')
plt.ylabel('Частота')
plt.title('Распределение BMI')
plt.show()
No description has been provided for this image

Данная диаграмма показывает, что большинство опрашиваемых имеет индекс массы тела в диапазоне от 20 до 40

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

# Загрузка данных
df = pd.read_csv("..//static//csv//heart_2020_cleaned.csv")

# Словарь для преобразования AgeCategory в числовые значения
age_mapping = {
    '18-24': 21,
    '25-29': 27,
    '30-34': 32,
    '35-39': 37,
    '40-44': 42,
    '45-49': 47,
    '50-54': 52,
    '55-59': 57,
    '60-64': 62,
    '65-69': 67,
    '70-74': 72,
    '75-79': 77,
    '80 or older': 85
}

# Преобразование столбца AgeCategory в числовые значения
df['AgeNumeric'] = df['AgeCategory'].map(age_mapping)

# Выбор среза данных с 1-й по 30-ю строку
df_slice = df.iloc[0:30]

# Определение количества уникальных значений возраста
unique_ages = df_slice['AgeNumeric'].nunique()

# Гистограмма для возраста на срезе данных с настройкой bins
plt.hist(df_slice['AgeNumeric'], bins=unique_ages, edgecolor='black')
plt.xlabel('Возраст')
plt.ylabel('Частота')
plt.title('Распределение по возрасту (строки 1-30)')
plt.show()
No description has been provided for this image

Данная диаграмма показывает распределение возрастов опрашиваемых людей