413 KiB
413 KiB
Лабораторная работа №1¶
7. Основные возможности библиотеки Pandas¶
Загрузка и сохранение данных¶
In [3]:
import pandas as pd
In [4]:
df = pd.read_csv("diabetes.csv")
df.head()
Out[4]:
In [5]:
df.to_csv("new.csv", index=False)
Получение сведений о датафрейме с данными¶
In [6]:
df.describe()
Out[6]:
In [7]:
df.info()
Получение сведений о колонках датафрейма¶
In [8]:
df.columns
Out[8]:
Вывод отельных строки и столбцов из датафрейма¶
In [30]:
df[["Age", "Insulin"]]
Out[30]:
In [10]:
df.iloc[3:6]
Out[10]:
In [11]:
df[df['Insulin'] > 100]
Out[11]:
Группировка и агрегация данных в датафрейме¶
In [12]:
group = df.groupby(['Pregnancies'])['Insulin'].mean()
group.to_frame()
Out[12]:
Сортировка данных в датафрейме¶
In [13]:
sorted_df = df.sort_values(by='Glucose', ascending = False)
sorted_df
Out[13]:
Удаление строк/столбцов¶
In [14]:
df_dropped_columns = df.drop(columns=['Insulin', 'BMI']) # Удаление столбцов 'Insulin' и 'BMI'
In [15]:
df_dropped_columns
Out[15]:
In [16]:
df_dropped_rows = df.drop([0, 1]) # Удаление строк с индексами 0 и 1
df_dropped_rows
Out[16]:
Создание новых столбцов на основе данных из существующих столбцов датафрейма¶
In [17]:
df['Glucose-BP'] = df['Glucose'] - df['BloodPressure']
In [18]:
df
Out[18]:
Удаление строк с пустыми значениями¶
In [19]:
print(df.isna().sum())
In [20]:
df.dropna() #Тк.пустых строк нет, мы ничего не удалили
Out[20]:
Заполнение пустых значений на основе существующих данных¶
In [21]:
df.fillna(df.mean(), inplace=True)
df.fillna(df.median(), inplace=True)
Мы обрабатываем пустые значения для каждого столбца отдельно
Мы можем заполнить пропуски средним или медианой, если это числовой столбец
Мы заполняем средним, если в колонке нет выбросов
Если столбец категориальный, то мы можем заполнить пропуски модой (самым часто встречающимся значением)
Если пропусков мало, то их можно просто удалить.
8. Возможности визуализации¶
In [22]:
import matplotlib.pyplot as plt
In [31]:
#Линейная диаграмма
plt.figure(figsize=(10, 5))
df['Glucose'].plot(title='Line Plot (Glucose)')
plt.show()
In [24]:
#Гистограмма
plt.figure(figsize=(8, 5))
df.plot.hist(column=["Age"], bins=80)
plt.show()
In [25]:
plt.figure(figsize=(8, 5))
df['Age'].value_counts().plot(kind='bar', title='Bar Plot (Age)')
plt.show()
In [26]:
plt.figure(figsize=(8, 5))
df["BMI"].plot(kind = "box", title='Ящик с усами')
plt.show()
In [32]:
plt.figure(figsize=(8, 5))
df[['Glucose', 'BMI']].plot(kind='area', alpha=0.2, title='Area Plot (Glucose, BMI)')
plt.show()
In [28]:
df.plot.scatter(x="Age", y="Glucose")
Out[28]:
In [29]:
plt.figure(figsize=(8, 5))
df['Outcome'].value_counts().plot(kind='pie', autopct='%1.1f%%', title='Pie Chart (Outcome)')
plt.show()