Пишу простую, но реальную программу. Python + Excel.

  Переглядів 129,282

Клуб дедов-программистов

Клуб дедов-программистов

День тому

Python-разработчик от Хекслет - lnnk.in/jddo
Реальный пример из жизни, как я работал с Excel - файлом при помощи языка программирования Python.
Задача - обработать XLSX-файл Бланка заказа и составить новую таблицу соответствия подкатегорий товара и принадлежащих им артикулов.
Подробно объясняю процесс создания программы.
В процессе использую библиотеку openpyxl, операции со строками, типы данных dictionary, list, операции со строками, сортировку словаря по ключам и многое другое.
⭐️ Мой подробный "Роадмап деда-программиста. Python бэкенд." со скидкой 20% : stepik.org/a/133721/pay?promo...
(Срок действия ссылки - до 15.05.24)
Чат Дедов-программистов в телеграме: t.me/oldcodersclub
Наш очень крутой GitHub дедов-программистов с кучей полезной информации для начинающих - роадмапы, с чего начать и куда развиваться : github.com/OldCodersClub
Финальный код и excel файл: github.com/break-and-enter/ol...
00:00 Intro
00:15 Задача
01:50 Библиотека openpyxl
03:23 Архитектура программы
03:53 Цикл for
04:14 Смотрим декларацию методов в PyCharm
05:25 Метод cell из openpyxl
06:13 Полезная реклама
08:00 Продолжаем
09:29 Словарь
11:54 Список как значение словаря
13:09 Красивый вывод: pprint
13:53 Запись в файл
14:54 Операции со строками
16:47 Сортировка словаря по ключам
17:55 Финальный код

КОМЕНТАРІ: 505
@user-bp4ks7bi7h
@user-bp4ks7bi7h Рік тому
Спасибо автору! Описан нормальный путь создания скрипта от постановки задачи до практической реализации в конкретной области. Использование простых конструкций позволяет понять происходящее для начального уровня, кому и предназначены эти видео. Замечания в комментариях по улучшению предложенного кода расширяют кругозор. Их авторам также спасибо!
@progway8574
@progway8574 Рік тому
В очередной раз убеждаюсь, что реальные задачи намного интереснее и эффективнее. Нужно как-нибудь попробовать. Спасибо большое за видео!
@user-me6gu6nh2w
@user-me6gu6nh2w 10 місяців тому
У меня ест многолетний опыт анализа данных в Excel. И эту задачу в Excel можно выполнить примерно за полторы минуты. Может 3 минуты. Загружаем всю таблицу в модель данных (Power Pivot). Создаём одну меру на DAX CONCATENATE. После чего выводу ее в сводную таблицу. Все. Выглядит гораздо быстрее чем способ на видео. А касаемо программирования... Я только в прошлом месяце начал учить Python для анализа данных. Знаю совсем немного. Но я бы в данном случае использовал бы Pandas. Подключился к таблице с переводом ее в DataFrame. Оставил бы только две нужные колонки. После чего загуглил (или чатгпт) как в Пандасе делать конкатинацию, так как такого ещё не учил. Мне кажется это будет проще и быстрее чем выщитывать номера колонок. А вдруг в следующей выгрузке добавиться колонка с новой информацией? Тогда номер колонки измениться и весь алгоритм пойдет лесом. А если привязаться к названию, то куда бы колонка не переехала, то ничего не поломается. Хотя может вмешаться человеческий фактор и измениться название колонки в таблице, но предусмотреть все невозможно.
@abzalbotbayev
@abzalbotbayev Рік тому
Это вообще законно, объяснять так понятно и наглядно? )) Спасибо!
@oldcoders
@oldcoders Рік тому
😆😆😆
@Akkaunt__Yerjan
@Akkaunt__Yerjan Рік тому
Вы бы skillbox посмотрели как там наглядно про основы взлома показывали)).
@sergey_ra
@sergey_ra 11 місяців тому
​@@Akkaunt__Yerjan есть на ютубе?) Подскажите, если да
@sergey_ra
@sergey_ra 11 місяців тому
​​@@Akkaunt__Yerjan помню вначале нулевых изучал фак по фриинету, будучи студентом безденежным, да ещё и музыкантом, вот у меня к пела голова😂 Научился инет добывать, да ещё и не обворовывая людей при этом :)) Данные для авторизации тырил конечно, проникая в компы через гостевой доступ для авторизации. И оказалось, что у прова мультилогины были у всех😅 РОЛ вроде это был😂
@user-fz7jx9uv9y
@user-fz7jx9uv9y Рік тому
Нет необходимость так сортировать словарь (преобразования сортированного списка кортежей обратно в словарь) достаточно написать for key, value in sorted(subcategories_dict.items()): т.к. по сути словари это неупорядоченные последовательности. То что в последних версиях python перебор элементов словаря идёт по порядку их занесения в словарь, не гарантирует аналогичное поведение в более ранних версиях python
@oldcoders
@oldcoders Рік тому
О, круто, спасибо!!
@eugenedukatta9355
@eugenedukatta9355 Рік тому
Меня сортировка словаря тоже слегка насторожила. Погуглил - оказывается начиная с версии Питон 3.6 словарь сохраняет порядок элементов в порядке их добавления. В более ранних версиях такого нет.
@i.e.2650
@i.e.2650 Рік тому
Спасибо за клевую практику и прикладное применение всех этих циклов, словарей и джоинов!!!!
@alvares2729
@alvares2729 Рік тому
Удачи в Новом году! Буду с нетерпением ждать новые видосы🤗
@user-zo7gq5sk9k
@user-zo7gq5sk9k Рік тому
Спасибо! Хороший пример. Решал недавно задачу с курса по работе с файлами, тут практически то же самое)
@maths781
@maths781 Рік тому
Спасибо большое за ролик. Интересно слушать взрослых программистов.
@ExcelStore
@ExcelStore Рік тому
Материал изложен в доступной для понимания форме. Спасибо.
@Juvelir97
@Juvelir97 Рік тому
Очень полезно и в отличном темпе для начинающе-продолжающих! Спасибо! Подписка однозначно
@user-mn7nf4bc2f
@user-mn7nf4bc2f Рік тому
Видео еще не смотрела, думаю, там все как всегда очень хорошо, но елочка на батарее очень милая, спасибо за настроение ☺️🧡
@oldcoders
@oldcoders Рік тому
☺️🎄
@axel-cjuh5426
@axel-cjuh5426 Рік тому
Объяснение, подача, реальные задачи, вы просто популяризатор программирования!
@sergiimatiavin3573
@sergiimatiavin3573 Рік тому
У Excel для решения подобной задачи без программирования есть собственный мощный инструмент - сводная таблица. Но пример полезный, спасибо.
@oldcoders
@oldcoders Рік тому
👌 но у нас цель - программирование
@user-qb5wo7yv7m
@user-qb5wo7yv7m Рік тому
Спасибо большое, мне как новичку и самоучке, тяжело найти наглядный пример. А тут прям то что нужно! Понимаю что возможно не оптимальное решение, но сам процесс поиска ответов, очень помог мне. Ещё раз спасибо, для меня очень полезная информация! Судя по коментариям и я дед)
@850scout
@850scout Рік тому
вы такой молодец.поддерживаете своими роликами.Спасибо!
@user-fs5mx9ew8d
@user-fs5mx9ew8d Рік тому
Хорошее видео с ходом рассуждения и реальный код👍
@QWERTY-om5fg
@QWERTY-om5fg Рік тому
Дед, ты лучший! Создаешь топовый контент! Спасибо!
@goviktor
@goviktor Рік тому
Очень хорошее и информативное видео. Спасибо - шикарная работа !!!!!
@pavelzaytsev_moscow
@pavelzaytsev_moscow 4 місяці тому
Спасибо! Отличный информативный контент. Удачи в Новом году и новых идей в развитии канала🎉
@user-pb2pu2tq1s
@user-pb2pu2tq1s Рік тому
Было бы замечательно и профессионально, после выхода комментариев, создать следующее видео, автор решит ту же задачу, но учтёт полезные комментарии, и немного усложнить задачу. К примеру что-то запишет в один файл с таким именем, а что-то в другой файл с другим расширением в другом виде. Методов много, хочется примеры на все методы. Т.е. к примеру, четыре видео, и в них раскрыты все методы работы со строками на простой реальной программе! Это лучший канал для самообучения! В остальных видео много просто примеров, а здесь реальные программы! Спасибо за видео! Успехов каналу и ведущему! Жду новые видео по всем разделам Python, что бы можно было освоить их и вырасти от джуна до мидла!
@oldcoders
@oldcoders Рік тому
Спасибо! Я тоже думаю о том, чтобы изменить программы с учётом советов, данных в комментариях, и записать видео об этом .
@kostashvetsov9258
@kostashvetsov9258 Рік тому
@@oldcoders 🤝🤝🤝
@MrSuperfantom
@MrSuperfantom Рік тому
Можно усовершенствовать программу, если добавить файл базы данных MySQL и в него писать необходимые значения и сохранять, переносить таким образом вместо файла ini. Ну и потом написать графический интерфейс, можно на Kivy для мультиплатформенности.
@oldcoders
@oldcoders Рік тому
Дело в том что мне такой вариант совершенно не нужен. Ни графический интерфейс ни БД. У меня этот скрипт встроится в мое большое веб-приложение. И я там использую ini файлы чтобы не хардкодить, не записывать в код то, что может меняться в зависимости от разных ситуаций. Чтобы с приходом нового сезона например не переписывать основной код приложения. Просто обновил ini файл, изменил если надо руками, добавил что надо - и готово. Приложение работает с новым сезоном . Без залезания в код.
@abracadabra5491
@abracadabra5491 7 місяців тому
@@oldcoders а почему ini файлы, а не тот же json?
@user-mw7dz4fg7f
@user-mw7dz4fg7f Рік тому
Мне вообще видео в тему! Как раз думал исполнить что то подобное с данными ЕХ таблицы. Спасибо!
@vasilejosu3431
@vasilejosu3431 3 місяці тому
Огромное спасибо! На работе часто используют Excel, и Python может очень помочь. Было бы ещё круче в конце видео записать данные в новый xlsx файл через цикл.
@mrrappbit
@mrrappbit Рік тому
Спасибо! Не пробовал работать с pprint и было интересно про чтение данных из ексель, применю в работе и автоматизирую процессы
@johnbelyaev4031
@johnbelyaev4031 6 місяців тому
Очень полезное видео !!!Как раз подобную программу реализую как начинающий программист, свой проект)Спасибо вам за труды. Подписка однозначно и рекомендации друзьям и знакомым!
@user-mq6vh6du9s
@user-mq6vh6du9s Рік тому
привет. Здорово, что показываешь реальные задачи с реальными алгоритмами) Продолжай в том же духе). По коду хотелось бы добавить, что можно избавиться от конструкции if-else стандартным методом dict.setdefault(key, list()).append(value) - т.е. если значение ключа есть, то он будет добавлен в список, а если такого ключа нету, тогда будет создан такой ключ в словаре и в него уже добавлен value. Надеюсь понятно написал))
@oldcoders
@oldcoders Рік тому
О, круто! Спасибо большое!!
@a.d.8390
@a.d.8390 Рік тому
@@oldcoders ещё удобно использовать defaultdict() стандартного модуля collections. Особенно если нужно получить вложенность в словаре наподобие json.
@Gr3gnov
@Gr3gnov Рік тому
Можно просто subcategories_dict = defaultdict(list) Таким образом можно указать, что в словаре в качестве значений будут листы. И можно смело делать subcategories_dict['любой ключ'].append(sku)
@oldcoders
@oldcoders Рік тому
Класс!
@andredru4278
@andredru4278 Рік тому
Спасибо. Очень понятные и наглядные комментарии.
@Abramov_Andrey
@Abramov_Andrey 10 місяців тому
Супер! Если еще будут примеры работы питона с экселем, по возможности, пжт, выкладывайте. Очень интересно) Спасибо!
@oldcoders
@oldcoders 10 місяців тому
👌 Есть еще одно видео на канале у меня, посмотрите, pandas + excel
@arudskyy
@arudskyy Рік тому
Я также ловлю кайф от работы с python. Был тоже опыт работы с Excel: однажды получилась очень удачный и стройный скрипт - на штатный разработчик Excel/VB начал у меня выяснять где же основной модуль реализации и не поверил, что этот скрипт и был всей рабочей программой
@rrroll
@rrroll Рік тому
хороший формат, все понятно, спасибо & так держать!
@BROnik
@BROnik Рік тому
Очень круто и полезно! з.ы.: Все еще жду 3ю часть по Джанго 🙃 С Новым Годом!
@oldcoders
@oldcoders Рік тому
Будет, будет.. собираюсь с силами .. 😀
@user-fr2cy6ng6z
@user-fr2cy6ng6z Рік тому
@@oldcoders Дай Вам всевышний сил немеренно для благого дела! А мы очень ждем!!!
@volhv12
@volhv12 Рік тому
Ну очень круто) Доходчиво и увлекательно)
@yuriyruchev9218
@yuriyruchev9218 9 місяців тому
Спасибо! Продолжайте дальше)
@Cotucini
@Cotucini Рік тому
И снова отличное видео! Спасибо
@user-qn6pq1dk5h
@user-qn6pq1dk5h Рік тому
Тоже делал подобную штуку для работы. Я это назвал прокинутым ВПР. Моя первая полезная программа))😊
@user-db7kz5un3x
@user-db7kz5un3x Рік тому
Круто! Спасибо! С большим удовольствием посмотрел!
@maxsam5741
@maxsam5741 Рік тому
Спасибо за труд!
@nikprilutskiy7064
@nikprilutskiy7064 Рік тому
Привет! Спасибо за видео! По поводу наполнения словаря подкину еще один вариант. Можно воспользоваться методом get(), что бы избежать конструкции if-else: subcategories_dict[subcategory] = subcategories_dict.get(subcategory, [ ]) + [sku] т.е. перед тем как записать значение ключа мы проверяем что у нас там уже есть по этому ключу через get(), если ничего нет то применяется второй аргумент у get() что положить туда, если ничего не нашлось. В случае, если найдется, то мы к списку просто прибавим еще одно значение.
@oldcoders
@oldcoders Рік тому
Спасибо!! Возьму на заметку!
@yawneed
@yawneed Рік тому
Для этого есть defaultdict чтобы такие кастыли не писать
@user-pk7ik7ho9q
@user-pk7ik7ho9q Рік тому
Спасибо за ответ. Когда я писал код попримеру в else выдавало ошибку, sku было стрингом, что не позволяло добавлять в него через аппенд. Твоё решение все исправило!
@EKZOTIKSKLYAR
@EKZOTIKSKLYAR 9 місяців тому
Спасибо! 👍
@user-rb3dk6ny3p
@user-rb3dk6ny3p Рік тому
Спасибо за видео! Очень интересно
@vernnms78
@vernnms78 Рік тому
Очень познавательно! Не программирую, но с удовольствием посмотрел и вник в код.
@qwaqa8
@qwaqa8 Рік тому
Очень информативно и интересно!
@a.osethkin55
@a.osethkin55 Рік тому
Спасибо большое. Очень интересно
@user-ul4se4ct7d
@user-ul4se4ct7d Рік тому
Спасибо за информацию!
@mkqwm
@mkqwm Рік тому
спасибо дед за интересные ролики
@drevo100
@drevo100 Рік тому
Спасибо, очень интересно. Возможно ли сделать подобный видео-разбор с данными, которые бы писались в БД (желательно постгрес). Если бы еще на арендованном серваке было бы вдвойне полезно.
@oldcoders
@oldcoders Рік тому
Я с БД только в Джанго работал, больше никак. В ролике про «Джанго часть 2» про это рассказывал. Но там не SQL, там ORM.
@mr.wrangler
@mr.wrangler Рік тому
Очень подробно , спасибо
@Fly2nowr
@Fly2nowr Рік тому
Класс 🙌 просто и лаконично!
@evgenyjagushinsky6695
@evgenyjagushinsky6695 11 місяців тому
Отлично сказано!!! Раз освоил свой язык программирования, так и используй его!
@sergiusz8620
@sergiusz8620 Рік тому
Спасибо, твои видео мотивируют
@user-ce3me9oc7r
@user-ce3me9oc7r Рік тому
Давно шукав схоже відео для роботи з хl, шикарне пояснення )))
@RiantHoff
@RiantHoff Рік тому
Словарь по итогу отсортирован по ключу, как строке (1.10, 1.11 идут впереди 1.2), а нужно как по числу. В программе не хватает вот этого последнего штришка. :)
@oldcoders
@oldcoders Рік тому
Просто мне не нужно было это. Это задача не учебная а реальная. Такой сортировки более чем достаточно, времени тратить на ненужную «досортировку» - смысла нет. И видео усложнять - тем более.
@italia9279
@italia9279 Рік тому
Спасибо за видео! Было позновательно)
@siralex8331
@siralex8331 Рік тому
ура, новый видос вышел!
@konanicopol7451
@konanicopol7451 7 місяців тому
Офигенно, я сам финансист и начал изучать программирование. Не думал что python можно использовать в excel
@GlExcel
@GlExcel Рік тому
в 8:42 - чтобы посчитать кол-во столбцов - достаточно их выделить и посмотреть на "подсказку" которая будет появляться правее курсора. Подсказка вида: 1048576R x 12C
@user-ts9fd3cy9d
@user-ts9fd3cy9d Рік тому
Очень круто!
@alisherxakimov762
@alisherxakimov762 11 місяців тому
Всё чётко ясно обьяснили спс огромное
@user-qh5fr3yo1w
@user-qh5fr3yo1w Місяць тому
Ну здорово. И Питон и Эксель изучаю на Степик. Сейчас посмотрю Хекслет.
@user-xq3qy4qv5z
@user-xq3qy4qv5z Рік тому
У вас преподавательский талант
@ndt_master
@ndt_master Рік тому
с удовольствием посмотрел видео и почитал комментарии
@mister_123
@mister_123 5 місяців тому
Спасибо! отличное видео.
@no101vmv
@no101vmv Рік тому
1. if else обычно стараются сократить. Я бы сделал "в случае если в словаре нет ключа" - создад запись с ключем где значение будет пустой массив. А потом аппендить туда значения без елсе. Мне так комфортнее) Не знаю кому как. Ну и еще одно замечание. А самое главное замечание кеоторое мне бросилось в глаза - сортировка не верная. Потому что саб категория должна сортироваться 1.1, 1.2, 1.3, ...., 1.10 а не 1.1, 1.10, 1.2. Для этого когда складываем в словарь можно сразу сделать category_dic и subcategory_dic и во втором писать только второе число подкатегории. И сортировать его как число а не как строку. В целом такая структура будет удобнее для дальнейшего использования.
@user-kc2xm1gu2n
@user-kc2xm1gu2n 11 місяців тому
Шикарно!
@web-writer4769
@web-writer4769 Рік тому
чувак, спасибо! очень клёво!
@yura9885
@yura9885 Рік тому
классный канал! респект тебе)
@user-ys3si9fc6b
@user-ys3si9fc6b Рік тому
Я бы воспользовался defaultdict из модуля collections тем самым объявив бы values словаря с типом list
@user-zl5sp9yh1n
@user-zl5sp9yh1n Рік тому
Добавление в список по ключу хорошо делать через dict.setdefault('key', []).append('item')
@MrTubeer
@MrTubeer Рік тому
Я люблю программирование. Но дальше теории никак не двинусь и по этому получаю удовольствие от просмотра таких роликов
@oldcoders
@oldcoders Рік тому
Поставьте себе задачу, очень простую. И решите ее. Если совсем нет задач - решайте их на codewars. Какой смысл знать теорию и не использовать ее?
@Gimli_Dwarf
@Gimli_Dwarf Рік тому
Берешь задачу - сортировка и подготовка данных из таблицы в 10000 строк, чтобы провести расчет и вывести результаты в word. Сначала пробуете на VBA, понимаете, что это полный изврат и переписываете на linq C#.... Profit.
@edrdr
@edrdr Рік тому
Попробуй заняться микроконтроллерами. Esp32 + micropython. Дёшево и сердито, вдруг в тебе спит гений
@no101vmv
@no101vmv Рік тому
Теория нужна что бы практика лучше давалась. Но основное все же практика а не теория на старте карьеры особенно
@vvvarvfx
@vvvarvfx Рік тому
Используйте f-строки, а не конкатенацию в чистом виде,f-строки прекрасны! Спасибо за ролик!
@AnuarAitkazin
@AnuarAitkazin Рік тому
Ждем 3 часть про Python Django
@calionigor1184
@calionigor1184 Рік тому
Спасибо! Подписка.
@user-je1tq2nu1o
@user-je1tq2nu1o 5 місяців тому
Спасибо Большое
@maxnorge
@maxnorge Рік тому
Библиотека Pandas имеет хороший функционал по таблицам, выборкам, группировкам, вводу/выводу файлов и т.д. Спасибо за видео!
@oldcoders
@oldcoders Рік тому
Да, я ее использую. В этом видео нет.
@andreyflash6001
@andreyflash6001 Рік тому
Тоже про Pandas подумал. Но в исходном excel файле (в названии столбцов таблицы) заметил объединённые ячейки. У меня Pandas такое читать отказывается. Есть вообще способ открыть excel файл с объединёнными ячейками через Pandas?
@Time2paw
@Time2paw 10 місяців тому
Дед, спасибо. Всё как по учебнику - если код нельзя прочитать как предложение, этот код нужно переосмыслить.
@Teraed
@Teraed 10 місяців тому
Спасибо интересно. Один вопрос если у нас в исходном файле будет за двоенная строка (Артикул + Подгруппа товара), то и в финале два одинаковых артикула в подгруппе товара выйдет? Если да, то как дописать проверку, и может добавить вывод дублей в отдельный файл для правки исходника. А то ошибка в одной цифре артикула и песчаная толстовка идет как черная.
@IvanIvanov-rp6og
@IvanIvanov-rp6og Рік тому
Можно вместо списка для артикулов использовать множество, тогда в строке артикулов не будет повторений dict.setdefault(key, set()).add(value) А при выводе использовать f-строку вместо строки с "+" и вставить sorted() в join, потому что множество выдает свои элементы в случайном порядке string_values = ', '.join(sorted(value)) string_to_write = f'{key} = {string_values} '
@oldcoders
@oldcoders Рік тому
👍👍 спасибо
@S_putnik
@S_putnik Рік тому
А если через метод get?
@IvanIvanov-rp6og
@IvanIvanov-rp6og Рік тому
@@S_putnik Через метод get мне нравится больше
@nuklotron7465
@nuklotron7465 Рік тому
к тому же множества работают быстрее списков)
@user-ok2oo7pt2r
@user-ok2oo7pt2r 5 місяців тому
​@@IvanIvanov-rp6ogкак помню, если ключа нет то выводит ошибку
@karkozov
@karkozov Рік тому
Я бы словарь сортировал иначе, через генератор, как кто-то предложил If/else при записи можно заменить конструкцией dict[key] = dict.get(key, []) + [value] Если нет значения по ключу, он в него записывает пустой список и конкатенирует со списком значения Либо dict.setdefault(key, []).append(value) И при создании результирующей строки использовал f-string Получилось бы что-то типа String_write = f”{key} = {‘, ‘.join(value)} ” - здесь сразу список значений распаковывается в строку с разделителями) вообще познав однажды f-строки невозможно их разлюбить
@Bop1ezh
@Bop1ezh Рік тому
Познавательно и круто! Спасибо за видео и разъяснения. Однако, я хотел бы уточнить пару моментов. 1-й - кроме макросов в Excel есть прекрасный ETL в виде PowerQuery, где тоже самое можно сделать при помощи интерфейса и нескольких кликов мышки. 2-ой - на 17:50 видно, что сортировка не идеальна, т.к. после. п.3.1. (20 строчка в IDE) идёт п.3.10. (21 строчка в IDE), а ещё ниже п.3.2. (26 стока в IDE). Подскажите, пожалуйста, как это скорректировать? Спасибо!
@oldcoders
@oldcoders Рік тому
Да, можете почитать в комментариях, об этом уже рассуждали. Чуть более сложную сортировку пришлось бы делать. Например отделять номер от названия подкатегории, переводить его в тип float , сортировать его и т.д. Мне это было не нужно, такой первичной сортировки было достаточно.
@kalisto4281
@kalisto4281 Рік тому
Большое спасибо за ролик, подскажите пожалуйста что за ide используется?
@oldcoders
@oldcoders Рік тому
PyCharm Community
@secretadmirateur5979
@secretadmirateur5979 Рік тому
Вот бы видео на этом канале появлялись чаще!
@oldcoders
@oldcoders Рік тому
На этой неделе выйдет новое. Из этой же серии «пишу реальную программу»
@user-sl3qw9ef7z
@user-sl3qw9ef7z Рік тому
Отлично!
@wirbelwind2696
@wirbelwind2696 Рік тому
Как насчёт defaulteict from functools? Чтобы не развлекаться с условием проверки наличия ключа.
@oldcoders
@oldcoders Рік тому
Да, defaultdict многие посоветовали, спасибо!
@Standa015
@Standa015 Рік тому
Бесконечно можно смотреть на три вещи: как огонь горит, вода течёт и профессионал работает. Так что посмотрю ка ещё раз. Это было красиво, я кайфонул. А вот использование огрызка удивило :)
@oldcoders
@oldcoders Рік тому
Ой я не профессионал точно, я не работаю программистом. Я любитель 😀 Мак - потрясающий комп, я ему не нарадуюсь уже много лет. И для программирования очень хорошо подходит.
@Standa015
@Standa015 Рік тому
Всё программисты которых знаю я работают в основном а Linux. Сам хотел обзавестись Qubes OS, ну или Tails на ноуте использовать:)
@oldcoders
@oldcoders Рік тому
Для повседневной жизни линукс менее удобен чем мак. Линукс хорош для сервера, куда свои приложения выкладывать будете. И макОС она тоже unix подобная система, считайте тот же линукс.
@pavelpeklov3825
@pavelpeklov3825 2 місяці тому
Спасибо, вполне полезно
@user-jw9fx1xk5s
@user-jw9fx1xk5s 7 місяців тому
Пришлось перейти с vba на python в связи с задачей где vba уже не тянет: надо было обрабатывать и рассчитывать с высокой точностью по данным в excel файлах размером порядка 300-500 mb (500 тыс. строк и 150 столбцов) за 10 лет (в результате сформирован dataset на 15 gb). Столкнулся с проблемой библиотеки openpyxl - непредсказуемая обработка чисел: то например вместо исходного числа 0,3 выдает 0,2999999, или вместо -0,002 -2e-3. Пришлось оборачивать дополнительными функциями. Может есть какие-нибудь опции чтобы подавить такую обработку?
@oldcoders
@oldcoders 7 місяців тому
docs-python.ru/tutorial/operatsii-chislami-python/problemy-chisel-plavajuschej-zapjatoj/ здесь не дан ответ вам? А вообще с такими большими объемами данных вам уже лучше смотреть на Базы Данных. Они работают быстро, четко, им хоть миллионы строк нипочем. Один раз загнать ваш датасет в БД и уже с БД работать.
@tsvjatoslav
@tsvjatoslav 6 місяців тому
Используй библиотеку pandas
@user-os1xg1rh4c
@user-os1xg1rh4c Рік тому
Деды вперед!
@oldcoders
@oldcoders Рік тому
Воистину вперед!
@SuperStranger_
@SuperStranger_ Рік тому
Спасибо за интересное видео. Но если говорить о том какой тип данных идеален для решения данной задачи - то это конечно же классическая задача для defaultdict - словаря со значением по умолчанию)..
@oldcoders
@oldcoders Рік тому
Да, многие написали про этот метод, спасибо!!
@mishamishin5239
@mishamishin5239 Рік тому
Спасибо за видео, очень нравится этот формат! Не совсем понял момент с sku: вы ж не объявляли эту переменную как list, как это работает?
@oldcoders
@oldcoders Рік тому
А sku это и не лист никакой. Лист это значение словаря, в котором элементами являются sku. subcategories_dict[subcategory]=[sku] Вот здесь список и объявляется.
@mishamishin5239
@mishamishin5239 Рік тому
@@oldcoders Понял, спасибо большое за ответ!
@kornevsergey
@kornevsergey Рік тому
Я бы так решил. Прикинул пару путей. в т.ч. и через возможности самого эксель. Посмотрел бы пару гайдов. Захотел эту задачку сделать сам. Прикинул сколько времени уйдет. Почесал репу. Написал бы тезисно ТЗ. Закинул 2-3м программистам на аутсорсе. Или даже одному кто онлайн. Взял бы оценку времени. Согласовал стоимость. Запустил бы в работу. опустим моменты некоторые.. тестанул бы сам и отдал пользователю. Получив ответ что все работает как надо, закрыл бы тиккет. ВОт, такой вот я программист))))
@seeemn_
@seeemn_ Рік тому
Здравствуйте! Будут ли ещё выпуски с задачами Codewars?
@oldcoders
@oldcoders Рік тому
Будут! Идей много, но я редко выпускаю видео, поэтому все затягивается
@paladinalik
@paladinalik Рік тому
Переменную string_towrite я бы записал через форматирование: f"{key}={string_values} "
@harddi7316
@harddi7316 Рік тому
Жаль нельзя поставить сразу два, а лучше три лайка ) пробовал с ноги сесть за написание скриптов для экселя 3 месяца назад на работке, потратил прилично времени и ничего не понял, все не работало и я забросил... сейчас после бесплатных курсов на степике (парни там реально наваливают знаний, если нужна ссыль маякните) все предельно понятно в этом видео, надо потихонечку разбираться со сторонними библиотечками.
@dnk1761
@dnk1761 Рік тому
Привет! Спасибо за видео! Классная идея с обучением на реальной задаче. Немного душных комментов по самому видосу - слишком много внимания берут на себя перебивки с музыкой, я бы музыку или подрезал или вообще убрал. Если добавить в начале что-то типа оглавления - так будет смотреть еще интереснее. Можно еще рассказать сколько времени заняла работа и сколько за это могут заплатить) спасибо за видос! Афтор пеши исчо
@oldcoders
@oldcoders Рік тому
Есть же оглавление - разделы под видео. За такую программу никто платить не будет, это минимальный базовый уровень владения языком. Времени заняло минут 30. За советы спасибо!
@AZaycev
@AZaycev Рік тому
Всё хорошо, но маленький недочёт.. Сортировка отработала не совсем должным образом.. 1.1, 1.10.., 1.2.. Мне кажется должно было.. 1.1, 1.2, 1.10... и тд. :) Видео очень понравилось, особенно рубрика реальных задач. Большое спасибо за видео!
@oldcoders
@oldcoders Рік тому
И вам спасибо! Дело в том что это реальная программа и я делал ее так, как нужно мне. Мне такой «неидеальной» сортировки достаточно. Если бы мне по какой то причине нужна была строгая сортировка - конечно я бы ее сделал.
@AZaycev
@AZaycev Рік тому
@@oldcoders понял, в целом я конечно так и подумал) Я в таких ситуациях использую сортировку natsort :)
@oldcoders
@oldcoders Рік тому
Понял. А я не люблю лишние модули импортировать. Если чтото можно сделать на ядре Питона, без потери в быстродействии и времени разработки - делаю на ядре.
@andynaz7044
@andynaz7044 10 місяців тому
@@oldcoders это не доблесть! ядро питона специально очень ограниченное по сравнению с другими языками, именно для мотивации исполшьзовать сторонние быблиотэки )
@user-pg8ry1tm3t
@user-pg8ry1tm3t 9 місяців тому
Супер!
@po100lit7
@po100lit7 8 місяців тому
спасибо! познавательно! но я б использовал pandas для работы с excel
@oldcoders
@oldcoders 8 місяців тому
Есть ролик и про pandas у меня
@DenisTrebushnikov
@DenisTrebushnikov 9 місяців тому
всё отлично, объяснение и пример, но: 1) это скрипт, а не программа, т.к. используется императивный подход, впрочем, это уже вопрос семантики. 2) задача не выполнена, т.к. условие "и формирование нового .xlsx файла" в рамках видео не выполнено PyCharm (Win) - ctrl+b (и тоже для выхода обратно) для pop-up подсказки - достаточно ctrl+q (второе нажатие открывает сбоку вкладку Документации) - прыгать в исходник бывает излишне; а данная комбинация также подсказывает ваши функции и классы (и даже вашу документацию, если она присутствует и создана по правилам)
@user-es4kn2gm9v
@user-es4kn2gm9v Рік тому
Спасибо Вам 🇧🇾🇧🇾🇧🇾🇧🇾
@alkha7144
@alkha7144 Рік тому
В поддержку.
Пишу реальную программу. Парсинг текстового файла. Python + Pandas + Excel.
23:57
Introducing Python in Excel 😱
19:01
Leila Gharani
Переглядів 1,4 млн
Лизка заплакала смотря видео котиков🙀😭
00:33
🐩🐕
00:25
Янчик
Переглядів 1,7 млн
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Клуб дедов-программистов
Переглядів 975 тис.
Software developer at 38: No Country For Old Men?
5:35
Денис Игнатенко
Переглядів 16 тис.
Решаю простые задачки на Python с сайта Codewars - ЧАСТЬ 2.
22:16
Клуб дедов-программистов
Переглядів 74 тис.
С чего начать изучать программирование?
17:21
Клуб дедов-программистов
Переглядів 34 тис.
КАК УСТРОЕН ИНТЕРНЕТ. НАЧАЛО
41:58
Alek OS
Переглядів 351 тис.
Python Практический. Объединить книги Excel
14:39
Товарищ Excel - Power Query, Power Pivot, Python
Переглядів 8 тис.
Стать программистом в 40+? Мотивирующее видео.
18:12
Клуб дедов-программистов
Переглядів 76 тис.
Интел подвинься, ARM уже в ПК!
14:06
PRO Hi-Tech
Переглядів 129 тис.
Опасная флешка 🤯
0:22
FATA MORGANA
Переглядів 205 тис.
План хакера 🤯 #shorts #фильмы
0:59
BruuHub
Переглядів 924 тис.
I7 2600K тест в играх и сравнение с AMD Ryzen
17:53