def generate_category_stats_export_file(stats): start_time = time.time() temp_file = tempfile.NamedTemporaryFile(suffix='.xlsx', prefix='wb_category_', mode='r+b', delete=True) writer = pd.ExcelWriter(temp_file.name) dataframe = stats.df dataframe = dataframe.drop([ 'turnover', 'sku', 'days_since_first_review', 'turnover_month', 'purchases_month', 'bin' ], axis=1) dataframe.to_excel(writer, sheet_name='Товары', index=None, header=True) distributions = calc_sales_distribution(stats) distributions.df.to_excel(writer, sheet_name='Распределение продаж', index=None, header=True) writer.save() logger.info( f'Export file generated in {time.time() - start_time}s, {os.path.getsize(temp_file.name)} bytes' ) return temp_file
def sales_distribution_turnover_chart(self): distributions_price = calc_sales_distribution(self.stats) df = distributions_price.df.loc[:, ['bin', 'turnover_month']] df['val'] = df['turnover_month'] return IntervalBarChart(df, x_axis='Цена', y_axis='Оборот').to_dict()
def sales_distribution_skus_chart(self): distributions_price = calc_sales_distribution(self.stats) df = distributions_price.df.loc[:, ['bin', 'sku']] df['val'] = df['sku'] return IntervalBarChart(df, x_axis='Цена', y_axis='Количество артикулов').to_dict()
def generate_category_stats_export_file(stats): start_time = time.time() temp_file = tempfile.NamedTemporaryFile(suffix='.xlsx', prefix='wb_category_', mode='r+b', delete=True) writer = pd.ExcelWriter(temp_file.name) stats.df.to_excel(writer, sheet_name='Товары', index=None, header=True) distributions = calc_sales_distribution(stats) distributions.df.to_excel(writer, sheet_name='Распределение продаж', index=None, header=True) writer.save() logger.info( f'Export file generated in {time.time() - start_time}s, {os.path.getsize(temp_file.name)} bytes' ) return temp_file