Продолжаю изучать возможности 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 измерения, чтобы не ставить фильтры, то использую “солнечную” диаграмму.
Созданную диаграмму добавлю на новый дашборд, где буду копить результаты упражнений.
В целом успех.
Для закрепления успеха планирую продолжать упражнения, а для систематизации ищу книжку с рейсами и задачами по MS PowerBI, чтобы попробовать реализовать то же самое, но в своих уроках по Apache superset.