Скриншот запущенного сваггера:
import pandas as pd
import matplotlib.pyplot as plt
data_base = pd.read_csv("csv/option4.csv")
# data_base.info
# print(data_base.describe().transpose())
Вызов функции для удобного просмотра столбцов и их значений во время выполнения лабы
data_base.info
<bound method DataFrame.info of id gender age hypertension heart_disease ever_married \ 0 9046 Male 67.0 0 1 Yes 1 51676 Female 61.0 0 0 Yes 2 31112 Male 80.0 0 1 Yes 3 60182 Female 49.0 0 0 Yes 4 1665 Female 79.0 1 0 Yes ... ... ... ... ... ... ... 5105 18234 Female 80.0 1 0 Yes 5106 44873 Female 81.0 0 0 Yes 5107 19723 Female 35.0 0 0 Yes 5108 37544 Male 51.0 0 0 Yes 5109 44679 Female 44.0 0 0 Yes work_type Residence_type avg_glucose_level bmi smoking_status \ 0 Private Urban 228.69 36.6 formerly smoked 1 Self-employed Rural 202.21 NaN never smoked 2 Private Rural 105.92 32.5 never smoked 3 Private Urban 171.23 34.4 smokes 4 Self-employed Rural 174.12 24.0 never smoked ... ... ... ... ... ... 5105 Private Urban 83.75 NaN never smoked 5106 Self-employed Urban 125.20 40.0 never smoked 5107 Self-employed Rural 82.99 30.6 never smoked 5108 Private Rural 166.29 25.6 formerly smoked 5109 Govt_job Urban 85.28 26.2 Unknown stroke 0 1 1 1 2 1 3 1 4 1 ... ... 5105 0 5106 0 5107 0 5108 0 5109 0 [5110 rows x 12 columns]>
Вызов иной функции для удобного просмотра столбцов и их значений во время выполнения лабы
data_base.columns
Index(['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married', 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi', 'smoking_status', 'stroke'], dtype='object')
Тренируюсь со срезами...
data_base.loc[10:11]
id | gender | age | hypertension | heart_disease | ever_married | work_type | Residence_type | avg_glucose_level | bmi | smoking_status | stroke | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
10 | 12109 | Female | 81.0 | 1 | 0 | Yes | Private | Rural | 80.43 | 29.7 | never smoked | 1 |
11 | 12095 | Female | 61.0 | 0 | 1 | Yes | Govt_job | Rural | 120.46 | 36.8 | smokes | 1 |
Все еще непонятной фигней занимаюсь...
new_data_base = data_base.sort_values("age")
А тут уже что-то интересное.
Я отбираю количество (сколько раз встречается в таблице) каждое из значений колонки "статус_курильщика" Потом с помощью функции plot отрисовываю круговую диаграмму
smoking_status_count = data_base["smoking_status"].value_counts().plot(kind='pie')
# smoking_status_count.plot(kind='bar')
plt.title("Диаграмма людей с разным статусaми курения")
Text(0.5, 1.0, 'Диаграмма людей с разным статусaми курения')
Здесь я делаю то же самое, только теперь стилизую диаграмму (area) - подписываю x и y оси, добавляю title
data_base["smoking_status"].value_counts().plot(kind='area')
# smoking_status_count.plot(kind='bar')
plt.title("Количество людей с разным статусaми курения")
plt.xlabel("статусы курения")
plt.ylabel("количество людей")
Text(0, 0.5, 'количество людей')
Здесь не особо интересно - делаю гистограмму с разницой в количестве мужчин и женщин испытуемых
data_base["gender"].value_counts().sort_values().plot(kind='bar')
<Axes: xlabel='gender'>
Здесь я беру данные по срезу (с 100-го челобрека по 300-го). И строю точечную диаграмму, которая отображает по иксам - курящий ли и насколько человек, а по игрекам - возраст
data_base.loc[100:300].plot.scatter(x="smoking_status", y="age")
<Axes: xlabel='smoking_status', ylabel='age'>