high_revenue_users = user_revenues[user_revenues['revenue'] > 1500]
print(high_revenue_users)
```
Результат:
```
user_id revenue
0 1 2000
```
Задача 13: Распределение доходов по продуктам
Описание: Определите, какой процент от общего дохода приносит каждый продукт.
Решение:
```python
# Подсчет общего дохода
total_revenue = sales_df['revenue'].sum()
# Расчет процента дохода по продуктам
sales_df['revenue_percent'] = (sales_df['revenue'] / total_revenue) * 100
product_revenue_percent = sales_df.groupby('product')['revenue_percent'].sum().reset_index()
print(product_revenue_percent)
```
Результат:
```
product revenue_percent
0 Laptop 50.793651
1 Phone 25.396825
2 Tablet 23.809524
```
Эти задачи демонстрируют, как SQLAlchemy и Pandas могут использоваться вместе для создания, управления и анализа данных в базах данных. Они покрывают такие аспекты, как фильтрация данных, выполнение группировок и агрегатов, интеграция данных и сохранение результатов. Эти примеры помогут вам освоить основные техники работы с базами данных в Python.
Глава 2. Интерактивная визуализация и аналитика
Plotly – это мощная библиотека для создания интерактивных графиков и визуализации данных. Она поддерживает широкий спектр графиков: линейные, столбчатые, тепловые карты, трехмерные визуализации и многие другие. Основное преимущество Plotly – интерактивность: пользователи могут увеличивать масштаб, перемещаться по графикам, а также взаимодействовать с данными в реальном времени.
Для работы с Plotly необходимо установить библиотеку:
```bash
pip install plotly
```
После установки можно использовать Plotly в сочетании с Pandas, что упрощает построение графиков на основе данных из DataFrame. Далее мы подробно рассмотрим примеры использования Plotly для создания различных типов графиков.
Построение простого линейного графика
Рассмотрим пример, где мы визуализируем изменение температуры в течение недели.
```python
import plotly.graph_objects as go
# Данные
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
temperatures = [22, 24, 19, 23, 25, 28, 26]
# Создание графика
fig = go.Figure()
fig.add_trace(go.Scatter(
x=days,
y=temperatures,
mode='lines+markers', # Линии с точками
name='Temperature',
line=dict(color='blue', width=2),
marker=dict(size=8)
))
# Настройка заголовков
fig.update_layout(
title='Изменение температуры за неделю',
xaxis_title='День недели',
yaxis_title='Температура (°C)',
template='plotly_white'
)
fig.show()
```
Объяснение:
1. Мы создаём объект `Figure`, добавляя в него данные с помощью `add_trace`.
2. Используем `Scatter` для отображения данных в виде линии с точками.
3. С помощью `update_layout` задаём заголовок графика и подписываем оси.
4. Метод `fig.show()` открывает интерактивный график в браузере.
Построение столбчатого графика
Теперь создадим столбчатый график, чтобы отобразить продажи по различным категориям товаров.
```python
categories = ['Electronics', 'Clothing', 'Groceries', 'Books', 'Furniture']
sales = [1000, 1500, 700, 1200, 900]
fig = go.Figure()
fig.add_trace(go.Bar(
x=categories,
y=sales,
name='Sales',
marker=dict(color='orange')
))
fig.update_layout(
title='Продажи по категориям товаров',
xaxis_title='Категории',
yaxis_title='Сумма продаж ($)',
template='plotly_dark'
)
fig.show()
```
Особенности:
– Используем `go.Bar` для построения столбчатого графика.
– Цвет столбцов задаётся через параметр `marker`.
Построение комбинированного графика
Иногда нужно совмещать разные типы графиков на одном рисунке. Рассмотрим пример, где на одном графике отображаются продажи в виде столбцов и прибыль в виде линии.