AIM-PIbd-31-Bakalskaya-E-D/lab_1/lab1.ipynb

127 KiB
Raw Blame History

Скриншот запущенного сваггера:

No description has been provided for this image

In [61]:
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())

Вызов функции для удобного просмотра столбцов и их значений во время выполнения лабы

In [84]:
data_base.info
Out[84]:
<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]>

Вызов иной функции для удобного просмотра столбцов и их значений во время выполнения лабы

In [85]:
data_base.columns
Out[85]:
Index(['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married',
       'work_type', 'Residence_type', 'avg_glucose_level', 'bmi',
       'smoking_status', 'stroke'],
      dtype='object')

Тренируюсь со срезами...

In [44]:
data_base.loc[10:11]
Out[44]:
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

Все еще непонятной фигней занимаюсь...

In [58]:
new_data_base = data_base.sort_values("age")

А тут уже что-то интересное.
Я отбираю количество (сколько раз встречается в таблице) каждое из значений колонки "статусурильщика" Потом с помощью функции plot отрисовываю круговую диаграмму

In [83]:
smoking_status_count = data_base["smoking_status"].value_counts().plot(kind='pie')

# smoking_status_count.plot(kind='bar')
plt.title("Диаграмма людей с разным статусaми курения")
Out[83]:
Text(0.5, 1.0, 'Диаграмма людей с разным статусaми курения')
No description has been provided for this image

Здесь я делаю то же самое, только теперь стилизую диаграмму (area) - подписываю x и y оси, добавляю title

In [82]:
data_base["smoking_status"].value_counts().plot(kind='area')

# smoking_status_count.plot(kind='bar')
plt.title("Количество людей с разным статусaми курения")
plt.xlabel("статусы курения")
plt.ylabel("количество людей")
Out[82]:
Text(0, 0.5, 'количество людей')
No description has been provided for this image

Здесь не особо интересно - делаю гистограмму с разницой в количестве мужчин и женщин испытуемых

In [90]:
data_base["gender"].value_counts().sort_values().plot(kind='bar')
Out[90]:
<Axes: xlabel='gender'>
No description has been provided for this image

Здесь я беру данные по срезу (с 100-го челобрека по 300-го). И строю точечную диаграмму, которая отображает по иксам - курящий ли и насколько человек, а по игрекам - возраст

In [107]:
data_base.loc[100:300].plot.scatter(x="smoking_status", y="age")
Out[107]:
<Axes: xlabel='smoking_status', ylabel='age'>
No description has been provided for this image