Форум сайта python.su
Всем добрый день!
После обработки данных получаю сводную таблицу, представленную ниже (1)
Подскажите, пожалуйста, каким образом/методом мне привести её с помощью Python (без типовых средств Excel “консолидация данных”) к следующему виду (2)
Спасибо!
Отредактировано DenisDenis (Июль 14, 2020 17:04:39)
Прикреплённый файлы: Сводная таблица.png (13,5 KБ)
Офлайн
DenisDenis1. Сначала нужно прочитать из Excel-файла данные с помощью модуля xlrd и перевести их во внутренние данные питона.
Подскажите, пожалуйста, каким образом/методом мне привести её с помощью Python
Офлайн
py.user.next, спасибо Вам за ответ!
Видимо я не совсем правильно сформулировал своё первое сообщение, попробую по-другому:
Офлайн
4. Использовать средства автоматизации встроенные в Excel
Офлайн
FishHook
т.е пункт 1 по сути, верно?
и это обусловлено тем, что в python нет удобных и оперативных, в частности, решений для таких задач?
Распространите свой ответ, немного, пожалуйста
Отредактировано DenisDenis (Июль 15, 2020 14:55:17)
Офлайн
DenisDenisНе верно. Вы используете питон для автоматизации рутины в Excel-документах. Но в экселе есть свой механизм автоматизации - встроенный язык VBA, редактор и отладчик. У меня возникает стандартный вопрос, нахрена использовать питон вместо родного инструмента. Это и есть "инструмент подходящий для решения подобных задач" из вашего вопроса.
т.е пункт 1 по сути, верно?
Офлайн
Я вас понял. Так получилось, что подрядчик, внедряющий ПО, не смог закрыть весь необходимый функционал. Я начинающий в python, VBA не владею. Вот и получилась ситуация.
Последний и не закрытый вопрос: так можно ли выкрутиться без механизмов Excel и разобраться при помощи сугубо возможностей Python ? Скажите, пожалуйста.
Если есть, то я рад буду это изучить самостоятельно и нетривиально решить задачу) Это будет для меня лучшая помощь и поддержка!
Офлайн
DenisDenisИзвините я начну свою обычную песню. Если вы работаете в питоне то удобные и естественные методы и выглядят по питонячьи.
После обработки данных получаю сводную таблицу
tbl1 = {(1,1):1,(2,1):2} tbl2 = {(1,2):3,(2,2):4,(3,2):4} tbl3 = {(1,3):7,(2,4):8} # тогда объединение в питоне одна строчка но, обратите внимание результат не таблица а питоновский объект tbl = tbl1 | tbl2 | tbl3
Отредактировано doza_and (Июль 15, 2020 19:20:28)
Офлайн
DenisDenisЕсли сильно постараться, то можно.
так можно ли выкрутиться без механизмов Excel и разобраться при помощи сугубо возможностей Python ?
Офлайн
DenisDenisЭто понятно. Даже если их не было бы, нужно было бы всё равно писать код для автоматизации этих действий так, как будто они появятся и будут любых размерностей, даже если они не появятся и размерность всегда будет одна.
Есть несколько, схожих по структуре, документов Excel
DenisDenisОткрою тебе секрет. Какие бы ты таблицы ни брал - начальная, промежуточная, конечная - в программировании они все считаются промежуточными. Всё это связано с тем, что любую из таблиц можно получить откуда угодно (хоть генерировать на лету) и любую из таблиц можно в любой момент преобразовать во что угодно (хоть в словесные фразы, хоть в изображения, хоть в звуки). Поэтому совершенно не важно, на каком этапе получена таблица. Любая таблица рассматривается как возникшая из ниоткуда и идущая дальше на вход куда угодно и зачем угодно.
Таблица 1 - это то промежуточное решение на котором мне пришлось остановится.
DenisDenisЕсли забыть про питон и использовать встроенный механизм Excel, а потом кликать мышкой, что будет. 1) Когда-то возникнет задача, которую Excel не сможет решить из-за отсутствия встроенных средств. 2) Когда-то поток в один-два-десять файлов в неделю превратится в поток в одну тысячу/пять тысяч/десять тысяч файлов в день. Как думаешь, что произойдёт с мышконажимателем, будь он даже настоящим коммунистом? Он просто физически по времени не сможет их обработать.
Чтобы достигнуть своего результата в виде таблицы (2) можно:
1. Забыть про python, и вручную, воспользовавшись встроенным механизмом Excel, “консолидировать данные” и в пару кликов мышкой привести к желаемому виду;
2. Воспользоваться уже разработанным на python, аналогичным “консолидация данных” Excel, методом, который я хотел бы уточнить у вас или участников форума, если таковой существует;
3. Доработать код, основываясь на других возможностях языка python. Возможно Вы подскажете фраймворк, как инструмент подходящий для решения подобных задач.
Отредактировано py.user.next (Июль 16, 2020 02:21:10)
Офлайн