Когда мощь Python проигрывает простоте

Каждый аналитик рано или поздно встаёт перед выбором: писать «по-взрослому» на Python с pandas и tkinter — или взять инструмент, где задача решается в несколько строк. Я посчитал стаж сотрудников двумя способами.

Наша таблица сотрудников

Когда мощь Python проигрывает простоте

Python: мощно, гибко, многословно

import pandas as pd from tkinter import Tk, filedialog # 1. Диалог выбора файла Tk().withdraw() input_path = filedialog.askopenfilename( title="Выберите Excel-файл с сотрудниками", filetypes=[("Excel files", "*.xlsx *.xls")], ) if not input_path: raise SystemExit("Файл не выбран — выход.") # 2. Читаем df = pd.read_excel(input_path) # 3. Приём → дата df["Приём"] = pd.to_datetime(df["Приём"], dayfirst=True, errors="coerce") # 4. Сегодня df["Сегодня"] = pd.Timestamp.today().normalize() # 5. Полные года стажа today_md = df["Сегодня"].dt.month * 100 + df["Сегодня"].dt.day hire_md = df["Приём"].dt.month * 100 + df["Приём"].dt.day years = (df["Сегодня"].dt.year - df["Приём"].dt.year - (today_md < hire_md).astype(int)) # 6. Приводим стаж к целому (Int64 — поддерживает None) df["Стаж"] = years.astype("Int64") # 7. Даты — в формат ДД.ММ.ГГГГ out = df.copy() out["Приём"] = out["Приём"].dt.strftime("%d.%m.%Y") out["Сегодня"] = out["Сегодня"].dt.strftime("%d.%m.%Y") # 8. Вывод в консоль print(out.to_string(index=False))

Что нужно знать, чтобы это написать:

  • Tk().withdraw() — иначе висит пустое окно.
  • dayfirst=True — иначе 15.03.2021 распарсится как 3-е число 15-го месяца.
  • errors="coerce" — иначе одна битая ячейка уронит весь скрипт.
  • Int64 (с большой буквы) — иначе None превратит стаж в 5.0, 7.0.
  • .dt.strftime("%d.%m.%Y") — иначе даты выведутся как 2021-03-15.
  • .to_string(index=False) — иначе pandas «сожмёт» столбцы и добавит индексы.

ArrayVator: 6 строк

m = OpenExcelShow() m[1, "Сегодня"] = 0 m[1, "Стаж"] = 0 m[:, "Сегодня"] = datenow("DD.MM.YYYY") m[:, "Стаж"] = age(m[:, "Приём"], m[:, "Сегодня"]) print(m)

Что нужно знать:

  • OpenExcelShow() — открывает диалог для выбора файла.
  • m[1, "Сегодня"] =0 — создали новый столбец и записали туда 0
  • m[1, "Стаж"] = 0 — создали новый столбец и записали туда 0
  • datenow("DD.MM.YYYY") — возвращает вектор строк в нужном формате.
  • age() — считает полные годы и возвращает целое.
  • print(m) — вывод в консоль.
Когда мощь Python проигрывает простоте

Выбор пользователя

  • Если задача разовая — «открыть Excel, посчитать, посмотреть» — ArrayVator экономит 80% времени и нервов.
  • Если задача часть большого пайплайна — интеграция с API, ML-моделями, веб-сервисами — Python незаменим. Мощь pandas и экосистемы окупает многословность.
  • Если учитесь — начните с ArrayVator, чтобы понять что вы делаете. Потом переходите на Python, чтобы понять как это устроено внутри.

Мощь — это про возможности. Простота — это про скорость до результата. В 2026 году, когда время дороже денег, для типовой табличной задачи простота побеждает. А мощь Python оставьте на тот день, когда простота упрётся в потолок

11