Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
1.9 kB
1
Indexable
Never
# Оптимизированный код для выполнения всех операций

# Загрузка данных и первичная фильтрация
data = pd.read_excel(file_path, sheet_name=0)
filtered_data = data.loc[(data['Канал Продаж Наименование'] == 'Мелкий опт') & (data['ГодМесяц'] == '2023-10-01')]

# Создание сводной таблицы и объединение с фильтрованными данными
data_pivot = filtered_data.groupby('Сделка Код')[['Количество (ед.тонн)', 'Выручка без НДС, тыс. RUB', 'Себестоимость, тыс. RUB', 'Транспортные расходы, тыс. RUB']].sum()
updated_filtered_data = filtered_data.merge(data_pivot, how='left', on='Сделка Код', suffixes=('', '_pivot'))

# Обновление значений для определенных строк
condition = updated_filtered_data['Регистратор Наименование'].str.contains('Реализация товаров и услуг')
updated_filtered_data.loc[condition, ['Себестоимость, тыс. RUB', 'Транспортные расходы, тыс. RUB']] = updated_filtered_data.loc[condition, ['Себестоимость, тыс. RUB_pivot', 'Транспортные расходы, тыс. RUB_pivot']]

# Удаление временных колонок и фильтрация финального DataFrame
final_data = updated_filtered_data.drop(columns=['Себестоимость, тыс. RUB_pivot', 'Транспортные расходы, тыс. RUB_pivot'])
final_data = final_data[final_data['Регистратор Наименование'].str.contains('Реализация товаров и услуг')]

final_data.head()  # Показ первых пяти строк оптимизированной таблицы
Leave a Comment