Обновить

Ведомости КМД как данные: что автоматизировать на Python и pandas

TL;DR: Ведомости КМД удобно обрабатывать в Python и pandas: привести выгрузку к плоской таблице, проверить данные, посчитать суммы и распределения, собрать отчёт или дашборд. Главное — не пропускать проверки.

Ведомость — не просто таблица веса. В ней детали, сборки, марки, комплекты документации. Пока объём небольшой, хватает Excel. Когда ведомостей много и структура выгрузок различается, повторяющиеся проверки превращаются в отдельный процесс.

КМД — это деталировочные чертежи металлоконструкций. Ведомости в их составе — таблицы с элементами, деталями, марками, количеством и весом. Именно такие таблицы удобно обрабатывать в Python.

Почему выгрузка не готова к анализу

  • многоуровневые заголовки и объединённые ячейки;

  • несколько листов с разной структурой;

  • разные названия одних и тех же полей;

  • числа и текст в одном столбце;

  • пустые значения, дубликаты, служебные итоги;

  • разные единицы измерения.

Даже суммарный вес по типам элементов начинается с выяснения, что в таблице и как читать поля. Процесс лучше делить: Excel/CSV → подготовка → проверка → расчёты → отчёт.

Подготовка в pandas

pandas читает Excel/CSV, преобразует столбцы, фильтрует, группирует и считает. Если таблица уже плоская:

import pandas as pd
df = pd.read_excel("ведомость.xlsx")
df["Вес"] = pd.to_numeric(df["Вес"], errors="coerce")
summary = (df.dropna(subset=["Тип элемента", "Вес"])
             .groupby("Тип элемента", as_index=False)["Вес"]
             .sum()
             .sort_values("Вес", ascending=False))
print(summary)

Это иллюстрация. Реальные файлы требуют настройки листа, строк заголовков, названий колонок и обработки итогов. Но даже такая группировка становится повторяемым шагом.

Проверки важнее расчёта

Число получить легко. Важнее понять, можно ли ему доверять. Проверяйте:

  • обязательные поля;

  • числовые столбцы;

  • попадание заголовков и итогов в расчёт;

  • неожиданные дубликаты;

  • сходимость с контрольными суммами;

  • единицы измерения.

В pandas это делается коротко:

print(df[["Тип элемента", "Вес"]].isna().sum())
print(df.duplicated(subset=["Марка", "Тип элемента"]).sum())

Набор проверок зависит от методики предприятия. Универсального правила нет, но проверки можно сделать явными и повторяемыми.

Что анализировать

  • суммарный вес и количество позиций;

  • распределение веса по типам элементов;

  • сравнение сборок и комплектов;

  • повторяющиеся детали;

  • необычно тяжёлые/лёгкие позиции;

  • таблицы и графики для отчёта.

Для визуализации — Plotly, для интерактивного дашборда — Streamlit. Но график лишь помогает заметить необычное значение, а не объясняет его причину.

Повторяемый сценарий

Удобно работать в Jupyter Notebook: загрузка, преобразования, проверки, расчёты. Затем повторяющиеся операции вынести в функции и шаблоны. Сохраняйте прозрачность: какие данные загружены, что преобразовано, какие строки исключены.

Что разрабатываем

Готовим курс «Мастер ведомостей» о Python и pandas для ведомостей КМД: неидеальные Excel/CSV, проверка данных, показатели, анализ сборок, визуализация, простые дашборды. Программа уточняется; будут практика, Jupyter Notebook, код и шаблоны.

Оставить заявку на уведомление о старте можно на странице курса.

Вопросы к сообществу

  1. Какие операции с ведомостями вы чаще всего делаете вручную?

  2. Какие проверки хотели бы сделать повторяемыми?

  3. В каком виде удобнее получать результат: таблица, Excel-отчёт, графики, дашборд?

Расскажите в комментариях — это поможет выбрать сценарии для курса.

Теги:
+4
Комментарии0

Криптографы показали практическую подделку RSA‑подписей без факторизации ключа

Новое исследование представило метод, использующий классические вычислительные мощности для снижения текущего уровня безопасности RSA до неприемлемо низкого предела. Применение атаки к устаревшим 1024-битным ключам заняло всего несколько месяцев на академическом кластере процессоров.

Криптографы показали практическую подделку RSA‑подписей без факторизации ключа

Публикации