511 KiB
511 KiB
Лабораторная работа №1¶
Датасет 12. Цены на акции Starbucks.
- Загрузка и сохранение данных
In [22]:
import pandas as pd
In [62]:
df = pd.read_csv("coffee.csv")
df.head()
Out[62]:
In [63]:
df.tail(2)
Out[63]:
In [24]:
df.to_csv("newCoffee.csv", index=False)
- Получение сведений о датафрейме с данными
In [25]:
df.describe()
Out[25]:
In [26]:
df.info()
- Получение сведений о колонках датафрейма
In [27]:
df.columns
Out[27]:
- Вывод отдельных строк и столбцов из датафрейма
In [28]:
df[["Open", "Close"]]
Out[28]:
In [29]:
df.iloc[5:10]
Out[29]:
In [30]:
df[df['Open'] > 120]
Out[30]:
- Группировка и агрегация данных в датафрейме
In [31]:
group = df.groupby(['High'])['Low'].mean()
group.to_frame()
Out[31]:
- Сортировка данных в датафрейме
In [32]:
sorted_df = df.sort_values(by='Date', ascending = True)
sorted_df
Out[32]:
- Удаление строк/столбцов
In [33]:
df_dropped_columns = df.drop(columns=['Adj Close', 'Volume']) # Удаление столбцов 'Adj Close' и 'Volume'
In [34]:
df_dropped_columns
Out[34]:
In [65]:
df_dropped_rows = df.drop([3, 4]) # Удаление строк с индексами 3 и 4
df_dropped_rows
Out[65]:
- Создание новых столбцов на основе данных из существующих столбцов датафрейма
In [36]:
df['Difference'] = df['High'] - df['Low']
In [37]:
df
Out[37]:
- Удаление строк с пустыми значениями
In [38]:
print(df.isna().sum())
In [39]:
df.dropna()
Out[39]:
- Заполнение пустых значений на основе существующих данных
In [ ]:
df.fillna(df.mean(), inplace=True)
df.fillna(df.median(), inplace=True)
Возможности визуализации
In [41]:
import matplotlib.pyplot as plt
In [43]:
#Линейная диаграмма
plt.figure(figsize=(10, 5))
df['High'].plot(title='Линейная диаграмма (столбец High)')
plt.show()
In [45]:
#Гистограмма
plt.figure(figsize=(8, 5))
df.plot.hist(column=["Open"], bins=80)
plt.show()
In [47]:
#Столбчатая диаграмма
plt.figure(figsize=(40, 10))
df['Open'].value_counts().plot(kind='bar', title='Столбчатая диаграмма (Open)')
plt.show()
In [68]:
#Ящик с усами
plt.figure(figsize=(8, 20))
df["Volume"].plot(kind = "box", title='Ящик с усами')
plt.show()
In [161]:
#Диаграмма с областями
plt.figure(figsize=(8, 5))
df[['Open', 'High']].plot(kind='area', alpha=0.2, title='Area Plot (Open, High)')
plt.show()
In [69]:
#Диаграмма рассеяния
df.plot.scatter(x="Open", y="Volume")
Out[69]:
In [72]:
#Круговая диаграмма
df['ForPieChart'] = df['Volume'] % 500 #Дополнительный столбец для демонстрации диаграммы
plt.figure(figsize=(8, 5))
df['ForPieChart'].value_counts().plot(kind='pie', autopct='%1.1f%%', title='Pie Chart (Volume)')
plt.show()
In [73]:
df['ForPieChart']
Out[73]: