165 KiB
Начало лабораторной¶
Выгрузка данных из csv файла в датафрейм
import pandas as pd
df = pd.read_csv(".//static//csv//StarbucksDataset.csv")
print(df.columns)
Столбцы датасета и их пояснение¶
Date - Дата, на которую относятся данные. Эта характеристика указывает конкретный день, в который происходила торговля акциями Starbucks.
Open - Цена открытия. Стоимость акций Starbucks в начале торгового дня. Это важный показатель, который показывает, по какой цене начались торги в конкретный день, и часто используется для сравнения с ценой закрытия для определения дневного тренда.
High - Максимальная цена за день. Наибольшая цена, достигнутая акциями Starbucks в течение торгового дня. Эта характеристика указывает, какой была самая высокая стоимость акций за день.
Low - Минимальная цена за день. Наименьшая цена, по которой торговались акции Starbucks в течение дня.
Close - Цена закрытия. Стоимость акций Starbucks в конце торгового дня. Цена закрытия — один из основных показателей, используемых для анализа акций, так как она отображает итоговую стоимость акций за день и часто используется для расчета дневных изменений и трендов на длительных временных периодах.
Adj Close - Скорректированная цена закрытия. Цена закрытия, скорректированная с учетом всех корпоративных действий.
Volume - Объем торгов. Количество акций Starbucks, проданных и купленных в течение дня.
График 1: Гистограмма¶
Цель: Показать распределение цены закрытия акций Starbucks за определенный временной промежуток.
Описание: Для того, чтобы показать распределение цен, я построил гистограмму для распределения цены закрытия. Данный столбец позволит визуализировать, как часто цена закрытия находилась в определенных диапазонах. Это поможет увидеть, в каких ценовых диапазонах чаще всего находилась стоимость акций, что полезно для выявления популярных ценовых уровней.
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()
График 2: Точечная диаграмма¶
Цель: Проанализировать связь между объемом торгов акциями Starbucks и их ценой открытия.
Описание: Чтобы провести анализ я создал точечную диаграмму, где по оси X будут отображаться значения цены открытия, а по оси Y значение объема торгов. Всё это наглядно покажет, увеличивается ли объем торгов при более высокой или низкой цене открытия. Этот график может быть довольно плотно заполнен, если объемы торгов варьируются в широком диапазоне.
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()
График 3: Круговая диаграмма¶
Цель: Показать визуализацию распределения цен закрытия акций Starbucks по категориям: "Низкая цена", "Средняя цена" и "Высокая цена".
Описание: Чтобы визуализировать распределения цен я создал круговую диаграмму, где выделили три категории цен закрытий акций Starbucks, которые были определены на основе значений цены закрытия.
Каждая категория соответствует определенному диапазону цен:
- Низкая цена: акции закрывались по цене 50 долларов или ниже.
- Средняя цена: акции закрывались по цене от 51 до 100 долларов
- Высокая цена: акции закрывались по цене выше 100 долларов.
Диаграмма показывает процентное соотношение дней, в течение которых акции находились в каждом из этих диапазонов. Это позволяет увидеть, как часто цена акций находилась на низком, среднем или высоком уровне за выбранный период.
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()