Продолжаю изучать возможности Apache Superset и прокачиваю свои навыки работы с данными.

В сегодняшнем уроке собрал данные из множества табличных данных и подготовил их с помощью Python, подготовленный CSV файл загрузили базу данных Superset и построил диаграмму.

 

Покажу детали:

1. Считываю файлы и собираю в единую таблицу

 



##импорт модулей
import pandas as pd
import numpy as np
from numpy import matlib
import os
import glob

##Фильтр таблицы, чтобы оставить только данные по кодам моделей автомобилей
CarCode = ['R12', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R18', 'R9',
       'R10', 'R11', 'R14', 'R13', 'R16', 'R17', 'R19', 'R28']

## Читаем данные форм загрузки, оставляем только данные по автомобилям

for filename in glob.glob("../DealersData/09_2021/*.xls"):
    temp_df = pd.read_excel(filename)
    temp_df = temp_df.loc[temp_df['Отдел продаж - Новые а/м'].isin(CarCode)] 
    temp_df['DealerCode'] = str(filename[23:29])
    temp_df['RepMonth'] = str(filename[30:37])
    mon_df = pd.concat([mon_df, temp_df], axis=0)

##Переименуем колонки для удобства дальнейшей работы
column_index_to_rename2 = 2
column_index_to_rename5 = 5
column_index_to_rename6 = 6

##mon_df = mon_df.rename(columns={'Скидка А/М': 'CarDiscount', 'Выручка Аксесс.': 'AccesoiresIncome'})
mon_df.rename(columns={mon_df.columns[0]: 'CarCode',
                       mon_df.columns[1]: 'CarModel',
                       mon_df.columns[2]: 'CarSales',
                       mon_df.columns[3]: 'CarDiscount',
                       mon_df.columns[4]: 'AccSales', 
                       mon_df.columns[5] : 'CarCost',
                       mon_df.columns[6]:'AccCost',
                       mon_df.columns[7]: 'SalesBonus',
                       mon_df.columns[8]: 'PCS',
                       mon_df.columns[9] : 'NetSales',
                       mon_df.columns[10] : 'VP',
                       mon_df.columns[11]: 'VPP'}, inplace=True)

## Читаем таблицу дилеров с дополнительной информацией
## dealers_df - датафрейм с полной информацией о дилерах

dealers_df = pd.read_excel("../Dealers.xlsx")

##Смерджим mon_df и dealers_df по КодуДилера
mon_df = pd.merge(mon_df, dealers_df, left_on='DealerCode', right_on='DealerCode', how = 'inner')

## выгрузим полученный датафрейм в CSV
mon_df.to_csv('mon_df.csv')

Переходим к Apache superset Загрузим CSV в базу данных

Если заранее сделали настройку, позволяющую загрузить данные в таблицы, то вопросов возникнуть не должно.

Создадим диаграмму. Попробуем решить задачу визуализации рэнкинга дилеров по объемам продаж.

Поскольку планирую использовать 2 измерения, чтобы не ставить фильтры, то использую “солнечную” диаграмму.

Screenshot 2024 01 14 at 14 32 12

 

Созданную диаграмму добавлю на новый дашборд, где буду копить результаты упражнений.

 

Screenshot 2024 01 14 at 14 34 01

В целом успех.

Для закрепления успеха планирую продолжать упражнения, а для систематизации ищу книжку с рейсами и задачами по MS PowerBI, чтобы попробовать реализовать то же самое, но в своих уроках по Apache superset.

Apache superset: Урок 1
Метки:             

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *