AIM-PIbd-31-Izotov-A-P/lab_1/lab1.ipynb

165 KiB
Raw Blame History

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

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

In [20]:
import pandas as pd
df = pd.read_csv(".//static//csv//StarbucksDataset.csv")
print(df.columns)
Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')

Столбцы датасета и их пояснение

Date - Дата, на которую относятся данные. Эта характеристика указывает конкретный день, в который происходила торговля акциями Starbucks.

Open - Цена открытия. Стоимость акций Starbucks в начале торгового дня. Это важный показатель, который показывает, по какой цене начались торги в конкретный день, и часто используется для сравнения с ценой закрытия для определения дневного тренда.

High - Максимальная цена за день. Наибольшая цена, достигнутая акциями Starbucks в течение торгового дня. Эта характеристика указывает, какой была самая высокая стоимость акций за день.

Low - Минимальная цена за день. Наименьшая цена, по которой торговались акции Starbucks в течение дня.

Close - Цена закрытия. Стоимость акций Starbucks в конце торгового дня. Цена закрытия — один из основных показателей, используемых для анализа акций, так как она отображает итоговую стоимость акций за день и часто используется для расчета дневных изменений и трендов на длительных временных периодах.

Adj Close - Скорректированная цена закрытия. Цена закрытия, скорректированная с учетом всех корпоративных действий.

Volume - Объем торгов. Количество акций Starbucks, проданных и купленных в течение дня.

График 1: Гистограмма

Цель: Показать распределение цены закрытия акций Starbucks за определенный временной промежуток.

Описание: Для того, чтобы показать распределение цен, я построил гистограмму для распределения цены закрытия. Данный столбец позволит визуализировать, как часто цена закрытия находилась в определенных диапазонах. Это поможет увидеть, в каких ценовых диапазонах чаще всего находилась стоимость акций, что полезно для выявления популярных ценовых уровней.

In [10]:
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.hist(df['Close'], bins=30, color='skyblue', edgecolor='black')
plt.title('Распределение цены закрытия акций Starbucks')
plt.xlabel('Цена закрытия')
plt.ylabel('Частота')
plt.show()
No description has been provided for this image

График 2: Точечная диаграмма

Цель: Проанализировать связь между объемом торгов акциями Starbucks и их ценой открытия.

Описание: Чтобы провести анализ я создал точечную диаграмму, где по оси X будут отображаться значения цены открытия, а по оси Y значение объема торгов. Всё это наглядно покажет, увеличивается ли объем торгов при более высокой или низкой цене открытия. Этот график может быть довольно плотно заполнен, если объемы торгов варьируются в широком диапазоне.

In [31]:
plt.figure(figsize=(10, 6))
plt.scatter(df['Open'], df['Volume'], alpha=0.5, c=df['Volume'])
plt.title('Объем торгов от цены открытия')
plt.xlabel('Цена открытия')
plt.ylabel('Объем торгов')
plt.show()
No description has been provided for this image

График 3: Круговая диаграмма

Цель: Показать визуализацию распределения цен закрытия акций Starbucks по категориям: "Низкая цена", "Средняя цена" и "Высокая цена".

Описание: Чтобы визуализировать распределения цен я создал круговую диаграмму, где выделили три категории цен закрытий акций Starbucks, которые были определены на основе значений цены закрытия.

Каждая категория соответствует определенному диапазону цен:

  1. Низкая цена: акции закрывались по цене 50 долларов или ниже.
  2. Средняя цена: акции закрывались по цене от 51 до 100 долларов
  3. Высокая цена: акции закрывались по цене выше 100 долларов.

Диаграмма показывает процентное соотношение дней, в течение которых акции находились в каждом из этих диапазонов. Это позволяет увидеть, как часто цена акций находилась на низком, среднем или высоком уровне за выбранный период.

In [36]:
import numpy as np

conditions = [
    (df['Close'] <= 50),
    (df['Close'] > 50) & (df['Close'] <= 100),
    (df['Close'] > 100)
]
categories = ['Низкая цена', 'Средняя цена', 'Высокая цена']

df['Price Category'] = np.select(conditions, categories, default='Не указано')

price_counts = df['Price Category'].value_counts()

plt.figure(figsize=(8, 8))
plt.pie(price_counts, labels=price_counts.index, autopct='%1.1f%%', startangle=140)
plt.title('Распределение цены закрытия акций Starbucks по категориям')
plt.show()
No description has been provided for this image