Пишу реальную программу. Парсинг текстового файла. Python + Pandas + Excel.

Поділитися
Вставка
  • Опубліковано 8 чер 2024
  • Запишитесь на бесплатную консультацию курса "Английский для разработчиков" от Яндекс Практикума: clck.ru/347Eyg
    Пишу реальную программу на языке Python и подробно объясняю каждый шаг. С картинками и стрелочками.
    Задача взята с фриланс-биржи. Нужно разобрать текстовый лог-файл криптобота и записать результаты в таблицу Excel.
    Применяю строковые методы питона, программистскую смекалку, фото котиков, а так же супер библиотеку pandas, которую хорошо бы знать каждому разработчику! 🐼🙌
    ⭐️ Мой подробный "Роадмап деда-программиста. Python бэкенд." со скидкой 10% : stepik.org/a/133721/pay?promo...
    👨‍💻 Чат Дедов-программистов в телеграме: t.me/oldcodersclub
    💥 Наш очень крутой GitHub дедов-программистов с кучей полезной информации для начинающих - роадмапы, с чего начать и куда развиваться : github.com/OldCodersClub
    💾 Финальный код, техническое задание и лог файл: github.com/break-and-enter/ol...
    00:00 Intro
    00:45 Задача
    02:23 Приступаю
    05:16 Pandas
    09:07 Шаблон
    11:27 Вторая строка
    12:09 Финт ушами
    14:11 Функция
    16:18 Третья строка
    19:08 Финишная отделка
    22:25 Outro
    Реклама. АНО ДПО «Образовательные технологии Яндекса», ИНН 7704282033, erid: LjN8KZ16i
  • Наука та технологія

КОМЕНТАРІ • 229

  • @EugeneErokhin
    @EugeneErokhin Рік тому +3

    мне понравился такой формат. Интересно наблюдать за вашим ходом мысли. Побольше бы таких видео!))

  • @user-sl3qw9ef7z
    @user-sl3qw9ef7z Рік тому +7

    Здравствуйте! Как всегда шикарное видео!!!

  • @weyni
    @weyni Рік тому +4

    Очень крутой и интересный формат, самому хоть и 16, но очень замотивировал, как никак другой, делать заказы интересными способами для себя способами!
    Спасибо тебе, подписка и лайк ✅👍

  • @asg5511
    @asg5511 Рік тому +18

    Отличное видео! Надо побольше таких и вообще побольше роликов про Python))

  • @user-zb8ho4on2g
    @user-zb8ho4on2g Рік тому +21

    Видео хорошее для новичков даже что-то понятно!! Первое видео за двухнедельный отпуск (от "супер" школы СКИЛЛФЕКТОРИ, которую не советую), которое посмотрел без зевания и с интересом! Спасибо!

  • @Dryagin_Andry
    @Dryagin_Andry Рік тому +1

    Классное видео, очень интересно было посмотреть решение реальной задачи!👍

  • @makswer
    @makswer Рік тому +11

    Очень интересно рассказываешь! все понятно, хотя я только только начинаю с python знакомство. Формат видео заходит отлично. Спасибо за работу!

  • @user-qv7ri5fg2d
    @user-qv7ri5fg2d Рік тому +1

    Огромное спасибо! Отличное видео! Подписался везде, лайк поставил, код посмотрю, спасибо огромное за свободный доступ к коду 🙏🙏🙏, очень жду еще видео и советы для начинающих, какие книги и что учить

    • @oldcoders
      @oldcoders  Рік тому +1

      Спасибо!! Вот это мое видео смотрели? - С чего начать изучать программирование?
      ua-cam.com/video/_PfQvdDq_bY/v-deo.html

  • @Denis_Stepanov
    @Denis_Stepanov Рік тому +6

    Я только только начал изучать Python (чисто для саморазвития - интересно стало). Много в видео ещё нового и не понятного, но зато я наглядно увидел, для чего изучаю сейчас все эти функции, словари и списки ))))) А то не люблю изучать что то, но не понимая для чего я это делаю ))))) Спасибо за видео ))

    • @oldcoders
      @oldcoders  Рік тому +8

      👍 вот именно для этого я и старался! 🙌

  • @andredru4278
    @andredru4278 Рік тому +3

    Спасибо. Посмотрел с удовольствием.

  • @Vladimir_F609
    @Vladimir_F609 Рік тому +2

    Приветствую! Спасибо за видео!!! 👍

  • @secretadmirateur5979
    @secretadmirateur5979 Рік тому +4

    Отличное видео получилось!

  • @vladimirserg1641
    @vladimirserg1641 5 місяців тому +2

    Видео супер жаль коротковато и это не шутка. Реально норм объяснил. Прошу не останавливаться запиши еще подобные видео благодаря тубе я в свои 45 начал учиться увидел интерес в жизни. Спасибо тебе большое. Ты просто красавчик. ❤

    • @oldcoders
      @oldcoders  5 місяців тому +2

      Спасибо :) Буду. Пока роадмапом занимался - может быть вам полезным stepik.org/a/133721

  • @LackyBird
    @LackyBird Рік тому +2

    Отличное видео, смотрится на одном дыхании... и мотивирует написать что либо похожее.

  • @rematender4269
    @rematender4269 Рік тому +2

    Отличное видео, спасибо! Удивляюсь на некоторых комментаторов, которые критикуют автора. Автор сразу предупреждает, что видео в бОльшей степени мотивирующее, чем обучающее. Обидно, что отдельные граждане не умеют ценить ни чужих усилий, ни чужих намерений.

    • @oldcoders
      @oldcoders  Рік тому +1

      Не, у меня все комментарии в основном суперские! Но спасибо за поддержку 😀🤝

  • @47clere
    @47clere Рік тому +3

    Тот самый момент когда первое видео на этом канале казалось сложным и непонятным, а теперь решение кажется простым и примитивным))
    Значит время не было потрачено зря))

  • @AlexCoder007
    @AlexCoder007 8 місяців тому +2

    Все сделал четко !

  • @evgenyjagushinsky6695
    @evgenyjagushinsky6695 Рік тому +1

    Отличная подача материала

  • @R0bertAkopyan
    @R0bertAkopyan Рік тому +1

    Спасибо, нашел для себя несколько интересных моментов, почему мне не приходило в голову использовать replace в таких же случаях.

    • @oldcoders
      @oldcoders  Рік тому +1

      Я сам не сразу додумался!

  • @the_huge_knight
    @the_huge_knight Рік тому +31

    В template вместо списка кортежей я бы использовал dict. Хотя во время написания кода умные мысли всегда медленнее программиста. Компилится - и ладно ✅

    • @nikprilutskiy7064
      @nikprilutskiy7064 Рік тому +1

      Согласен, словарь тут прямо напрашивается. Проще с ним оперировать для такой задачи.

    • @Uni-Coder
      @Uni-Coder Рік тому

      "Питон" и "компилится" - плохо совместимые понятия

    • @AwakenDrow
      @AwakenDrow Рік тому +1

      @@Uni-Coder Отлично совместимые. Cpython есть как стандарт компилированного пайтона. В крайнем случае такие проекты можно в екзешник запихнуть через тот же py-installer

    • @Uni-Coder
      @Uni-Coder Рік тому +2

      @@AwakenDrow Совместимые, но не могу сказать, что отлично. Компилируются обычно статически типизированные языки. py-installer же просто запаковывает интерпретатор питона и все зависимости в самораспаковывающийся архив, насколько я знаю. То есть этот "экзешник" просто распаковывает интерпретатор и дальше идёт всё та же интерпретация. Делал я такое, и не раз. Размер "экзешника" получается гигантский.
      "Компиляция" - это всё-таки про C, C++, Rust и Pascal; для остальных это не очень типично.

  • @siralex8331
    @siralex8331 Рік тому +1

    спасибо за видео, посмотрим )

  • @po100lit7
    @po100lit7 9 місяців тому +1

    превосходно! видел этот заказ, но поленился взять его, как раз из-за бардака в исходных данных =)

  • @user-ul4se4ct7d
    @user-ul4se4ct7d 3 місяці тому

    спасибо за информацию и эмоции
    очень интересный контент

  • @user-ve7tx3ud6n
    @user-ve7tx3ud6n Рік тому

    Спасибо за интересное видео.

  • @azh7680
    @azh7680 Рік тому +1

    Спасибо. Классно получилось. Так все просто у Вас. Прям учиться захотелось. Объясняете понятно. Может уже курсы по пайтон откроете?

    • @oldcoders
      @oldcoders  Рік тому +1

      Я пишу сейчас не курс, а роадмап Python веб-разработчика. Объясняю подробно что и зачем учить и даю ссылки на бесплатные ресурсы по которым учился я, или которые я узнал позже и они мне нравятся

    • @mir-kirpicha
      @mir-kirpicha 9 місяців тому +1

      @@oldcoders Добрый день. Когда планируется выпуск данного сборника?

    • @oldcoders
      @oldcoders  9 місяців тому +2

      Надо собраться с силами и закончить его. Надеюсь в сентябре сделаю это.

  • @blackbigdeath
    @blackbigdeath Рік тому +1

    Типовая задача для regex. Спасибо за видео.

  • @nonna45
    @nonna45 Рік тому +2

    К вопросу как бы сделали мы: если уже подключили и используем pandas, тогда циклы уже не используем вообще. Вывод наименований в список тоже можно было написать с функциями из pandas. Соответственно код программы кратно уменьшается.

  • @nohtyp_gniyduts838
    @nohtyp_gniyduts838 Рік тому +3

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

    • @oldcoders
      @oldcoders  Рік тому +1

      Да, регулярки пригодились бы, но я в них так не хочу разбираться :)

    • @budu_kpatok
      @budu_kpatok Рік тому

      Да, хорошо дробить на функции и добавлять конструкцию: if __name__ == "__main__" . Код без отступов не очень хорошая практика

  • @user-hs6lj9zt4p
    @user-hs6lj9zt4p Рік тому +1

    Руслан, спасибо за новое видео, интересно:
    - 10:53 при изучении Пайтона, вам ментор сказал, что существует метод to_string , непонятно где можно это было узнать?
    - если я скачаю у Вас лог файл задание и буду тупо повторять за вами, как думаете это поможет в изучении языка?

    • @oldcoders
      @oldcoders  Рік тому +6

      Привет!
      Ментора не было у меня. Всякие такие to_string узнаются когда возишься много дней со своей программой и много гуглишь. Документацию по пандас бесполезно читать, там тысяча методов, надо конкретный вопрос гуглить. Возникла в вашей программе потребность - и пишешь в гугл типа «pandas how to print whole dataframe». И так для каждой мелкой задачи по ходу написания вашей программы.
      Скачать лог файл и просто повторять - мне кажется бесполезно почти. Вам надо поставить себе реальную задачу, чем то похожую на мою , хотя бы отдалено. Какой то файл в экселе вам может нужно обработать? И пишите свою программу и возможно какой то элемент из моего видео пригодится.

    • @user-hs6lj9zt4p
      @user-hs6lj9zt4p Рік тому +1

      @@oldcoders Руслан, спасибо!

  • @Tosha.V
    @Tosha.V Рік тому +2

    Юморить ещё успевает)

  • @n0rmaLman
    @n0rmaLman Місяць тому

    В pandas есть фильтрация, она применяется сразу ко всему датафрейму (строке, колонке) поэтому циклы ему не нужны. Также, в pandas есть все строковые методы и поддержка регулярок. Думаю, фанаты pandas распарсили бы этот лог файл и сохранили в эксель однострочным выражением. 😊 В этом фишка pandas, он умеет делать невероятные вещи в несколько строк кода.

  • @noname52rus
    @noname52rus Рік тому

    nice, thank you!

  • @alxmark6086
    @alxmark6086 5 місяців тому

    Спасибо!

  • @ChopeZzz
    @ChopeZzz Рік тому +8

    Очень круто, спасибо за видео. 🤓👍 У меня одна мысль возникла - а нельзя ли эту работу сделать используя Power Query? Там тоже можно фильтровать, разделять строки по символам и т.д.

    • @oldcoders
      @oldcoders  Рік тому +1

      Наверное можно! Обработку данных много где можно делать.

    • @n0rmaLman
      @n0rmaLman Місяць тому

      В power query можно все, потому, что в него встроен язык "М". Как начал пользоваться power query VBA практически перестал использовать. 😊

  • @MBW2010
    @MBW2010 Рік тому +1

    Спасибо Вам за видео работы в excel. Вы приподносите информацию очень доступно, без претензии на уникальность подхода - это подкупляет. Как оказывается "просто" на Python получить доступ к excel, а то раньше на Си приходилось работать с OLE-, а то и COM-интерфейсами - удивительно, как все становится очевидным с Python, особенно в Вашем изложении ... как все же в Python, будучи интерпретатором, распространять приложение на другие компьютеры с той же операционной системой (Windows) без экзешника (*. exe) 🤔?

    • @oldcoders
      @oldcoders  Рік тому

      Ну 3 варианта:
      1) компилировать экзешник.
      2) учить как запускать вашу программу на других компах при помощи Python (устанавливать сам питон и модули)
      3) писать веб-приложение и выкладывать в интернет. но этому долго придется учиться

    • @daitedve1984
      @daitedve1984 Рік тому

      Икселя с момента появления *.xlsx уже являлась практически читабельным XML, так что никакие OLE не нужны.

    • @egorvasilev2225
      @egorvasilev2225 Рік тому

      Да не нужно никакого доступа в Excel, создаешь файл в формате CSV формате и все, проще некуда, Excel без проблем открывает такие файлы.

  • @schmoopiegrob8758
    @schmoopiegrob8758 Рік тому +4

    Так и выглядят в основном задачи на фрилансе, реалии работы с данными, это и есть программирование)

  • @airjt
    @airjt Рік тому +1

    Расскажу про свой опыт программирования, парсинга и API... Вчера получил задание от начальства проанализировать онлайн кабинет мобильного оператора с тысячью записей в каждой записи есть свои подключенные функции, плюс есть файл который содержит информацию о том что нужно еще подключить по каждому номеру. Не имея опыта в программировании, с помощью CHATGPT написал парсинг на Python за час... но есть одно но. Чтоб это делать как минимум нужно понимать что тебе надо и как это нужно реализовать... и это ты должен описать самому чату. Как минимум спасибо что делитесь с нами алгортимами решений задач.

    • @ypohut1673
      @ypohut1673 4 місяці тому +1

      Платная версия gpt4?

    • @airjt
      @airjt 4 місяці тому

      ​@@ypohut1673 нет... обошелся бесплатным

  • @user-eh1dh5kp6m
    @user-eh1dh5kp6m Рік тому +4

    Я бы написал макрос на VBA в самом Excel.

  • @kapkaev
    @kapkaev Рік тому +1

    Хорошее видео, спасибо !
    new_line replace можно было следать .replace(':', ' ').replace('.', ' ') насколько я помню они работают последовательно

    • @oldcoders
      @oldcoders  Рік тому

      Скорее всего да! Но хотел пошагово, чтоб попонятнее.

    • @nataliepodgainova6582
      @nataliepodgainova6582 Рік тому

      Можно было и split(":")

  • @nik01aich
    @nik01aich Рік тому

    Видео совсем не скучное, а даже интересное, а разделитель можно в самом экселе поменять)

  • @emigrate89
    @emigrate89 Рік тому

    Могу предложить идею для следующего видео. Сделать небольшую crm для заведения заявок с джанго и базами данных. + приправить динамическими страницами

    • @oldcoders
      @oldcoders  Рік тому +3

      Я хотел сделать видео с полноценным Джанго проектом, но это была бы гигантская работа и минимум просмотров. Очень много надо объяснять, все это растянется на штук 10 видео. Чтобы было понятно и интересно - надо почти месяц тратить на каждый ролик. А просмотров у роликов про Джанго очень мало, посмотрите мою третью часть - всего 7 000 просмотров.
      Вобщем неинтересно мне так тратить время, к сожалению.

  • @travaler5235
    @travaler5235 Рік тому

    Отличное видео, спасибо, узнал новое для себя.
    Может быть я упустил эту часть, но возник вопрос:
    вот у вас в итоге написан готовый код в пайчарме, он работает как нужно и всё хорошо,
    но как его в итоге будет использовать условный заказчик с фриланс биржи?
    Докер с контейнерами или есть какая то функция пайчарма, позволяющая как то упаковать и упростить запуск для заказчика или что то другое?

    • @oldcoders
      @oldcoders  Рік тому +2

      Да. Тут неудобно конечно получается. Три варианта :
      1) скомпилировать мою программу в исполняемый exe файл (обычно так с питоном не делают)
      2) отдать мой скрипт, научить как устанавливать IDE и все нужные библиотеки и запускать программу (ужас, непосвященному человеку будет страшно)
      3) оформить программу в виде веб-приложения (но это надо быть веб-разработчиком и еще надо иметь сервер и выкладывать на него)

    • @rematender4269
      @rematender4269 Рік тому +1

      @@oldcoders К пункту 3. Есть удобная бесплатная программка "openserver". Она как раз предназначена для того, чтобы запускать "сервер" у себя на компьютере. Сам недавно стал пользоваться для запуска самодельных "сайтов", которые состоят из страниц html, js, php.

    • @rematender4269
      @rematender4269 Рік тому +2

      @@oldcoders К пункту 1. Можно делать запускаемые файлы прямо в самом Питоне или через Терминал. Для этого предназначена библиотека "pyinstaller".

    • @oldcoders
      @oldcoders  Рік тому +1

      По пункту 3 - ngrok еще. Единственное - придется держать свой компьютер всегда включенным, не лучшее решение. Все таки правильней делать традиционный деплой на сервер.

  • @user-ij8pd3lz5r
    @user-ij8pd3lz5r Рік тому +1

    Разделитель не в excel задается, а в региональных настройках.

  • @prozzy82
    @prozzy82 14 днів тому

    я до этого видео решал такие вопросы с помощью power query excel, буду модернизироваться

    • @oldcoders
      @oldcoders  13 днів тому

      Вы знаете, это не обязательно, переходить на Питон. Если задача решается быстро тем способом, который вы умеете - надо решать им. Просто для меня лично приятнее и удобнее сделать это при помощи Питона.

  • @user-tr5sq6qg5e
    @user-tr5sq6qg5e 18 днів тому

    Интересно как можно задать в эксель ширину столбца?

  • @UC1C0GDMTjasAdhELHZ6lZNg
    @UC1C0GDMTjasAdhELHZ6lZNg 8 місяців тому

    в питон метод replace регулярное выражение не может принимать? чтобы сразу заменить все ненужные спецсимвол на пробелы

    • @oldcoders
      @oldcoders  8 місяців тому

      Регулярными выражениями было бы проще все сделать, да. Но я в них не умею.

  • @ppr8117
    @ppr8117 Рік тому +2

    В современных версиях Excel, начиная с 2016 эта, вполне себе тривиальная задача, решается с помощью встроенных инструментов- Power Query. Я бы прикрутил ко всей этой истории макрос VBA. Но задачка интересная!

    • @oldcoders
      @oldcoders  Рік тому +3

      Если бы мой канал был про VBA и Power Query - я бы обязательно решил задачу при помощи них.

  • @ailabinsev
    @ailabinsev Рік тому

    Спасибо, вдохновило. Пойду попрошу друга, пусть разместит заказ на бирже, сделаю за пиво.

    • @oldcoders
      @oldcoders  Рік тому

      😁👍 отличный план

  • @-tommy.
    @-tommy. Рік тому

    За котика лайк!

  • @user-ul4se4ct7d
    @user-ul4se4ct7d Рік тому

    спасибо

  • @DomNaPechi
    @DomNaPechi Рік тому

    Приветствую. Я так понимаю, что взять из открытого файла эксель данные, не сохраняя предварительно. не получится? Поясню: в экселе использую макросы, для выборки нужных данных в двух разных файлах, потом из них, открытых и уже после работы макросов, открываю третий, где арифметическими формулами происходит подсчёт (посещение людей по отделамм). Эксель отрабатывает только когда открыты первые два файла, собственно по этому и возник вопрос, может ли пайтон/питон брать данные из открытых файлов. Или питон может вместо макросов произвести всю выборку/фильтры в экселевских файлах, типа как в вашем видео?

    • @oldcoders
      @oldcoders  Рік тому

      Питон открытые и несохраненные файлы обработать не сможет.
      Но он точно сможет сделать любые ваши подсчеты и фильтры вместо макросов, с любыми сохраненными файлами.

    • @oldcoders
      @oldcoders  Рік тому

      Еще вот это мое видео посмотрите , я там эксель файл открываю и обрабатываю
      ua-cam.com/video/eEbi7wdZNV4/v-deo.html

    • @nataliepodgainova6582
      @nataliepodgainova6582 Рік тому

      Pandas все это делает легко. Чтобы посмотреть данные, можно использовать jupyter. Так можно делать и графики и выборки и все что угодно.

  • @014sova014
    @014sova014 Рік тому +9

    Руслан, изучай регулярки...с ними задачи по парсингу текста решаются намного легче. Да и аргумент regex=True сразу станет понятным:)

    • @oldcoders
      @oldcoders  Рік тому +4

      Да да, регулярками было бы меньше кода и быстрее, но блин не могу я 😁 не лежит душа :)))

    • @014sova014
      @014sova014 Рік тому +2

      @@oldcoders да там ничего сложного...надо просто изучить базовые правила и этого уже будет достаточно. посоветую книгу Джеффри Фридла "Регулярные выражения.3-е издание", очень подробно расписано и легко читается

    • @vater122
      @vater122 Рік тому

      @@oldcoders На Степике есть вполне хороший курс, который я прошёл - "Регулярные выражения в Python". Можно уделить несколько дней и навсегда закрыть эту проблему.

    • @tigr4
      @tigr4 Рік тому +1

      @@oldcoders Не лежит душа - это потому что они при Первом взгляде кажутся страшными. Но стоит научиться использовать хотя бы их базовые возможности - и они становятся родными.

    • @Uni-Coder
      @Uni-Coder Рік тому

      @@tigr4 Вещь очень сильная, но в отдельных случаях возникают большие вопросы к быстродействию. Движку regex надо построить автомат, это занимает время, да и на исполнение автомата требуется время. Но в 99% регексы - имба.

  • @nataliepodgainova6582
    @nataliepodgainova6582 Рік тому

    А если в файле поменяются названия столбцов? Или нужно будет местами их менять?

    • @oldcoders
      @oldcoders  Рік тому

      Если в лог файле что-то поменяется - да, руками придется подправлять код 🤷🏻‍♂️

  • @user-ee7xd1hi6u
    @user-ee7xd1hi6u Рік тому

    Круто

  • @sergeytopskiy59
    @sergeytopskiy59 Рік тому +5

    На мой взгляд можно было обойтись без pandas, ведь вы ничего не анализируете, графики не строите. Библиотека openpyxl нормально работает со словарями, просто составить словарь для каждой даты и экспортировать в excel.

    • @oldcoders
      @oldcoders  Рік тому +1

      Можно было, согласен

  • @kashapovin
    @kashapovin Рік тому

    Супер.
    Каким софтом пользуешься для записи роликов?

    • @oldcoders
      @oldcoders  Рік тому +1

      У меня есть видео как я снимаю свои ролики : ua-cam.com/video/lZRssotg6Q0/v-deo.html
      Монтирую на Final Cut

    • @kashapovin
      @kashapovin Рік тому

      @@oldcoders какой софт для записи экрана и себя?

  • @curvesofthehand
    @curvesofthehand Рік тому

    Добрый день! А как отдавали решение заказчику? Как-то упаковывали? Или как есть в виде кода, который нужно самостоятельно запустить?

    • @oldcoders
      @oldcoders  Рік тому

      Заказчик умеет запускать Питон, поэтому отдал в виде кода.

    • @lll_mathcoding607
      @lll_mathcoding607 9 місяців тому

      @@oldcoders Спасибо за наглядный пример решения реальной задачи! У меня есть вопрос по удовлетворенности заказчика. Я внимательно прочел все комментарии, прежде чем выбрать, где оставить свой. Был ли удовлетворен заказчик решением своей задачи на питоне в сторонней среде или он все же хотел, чтобы макрос запускался внутри экселя? Переделывал ли он парсер впоследствии?

  • @MrBondarrr
    @MrBondarrr Рік тому +1

    Е мое)) И нас простых архитекторов заставляют учить программирование, такова жизнь))

  • @jamjam3337
    @jamjam3337 Рік тому +1

    👏👍

  • @ko-prometheus
    @ko-prometheus Рік тому

    Привет.
    Как написать код на Python, программу, которая позволить банить определенные каналы на ЮуТубе??

    • @oldcoders
      @oldcoders  Рік тому

      У UA-cam есть API , можете изучить, возможно есть что-то

  • @hitomiuwu4837
    @hitomiuwu4837 Рік тому +2

    😇

  • @romul23
    @romul23 Рік тому

    А почему template не словарем, а списком кортежей?

    • @oldcoders
      @oldcoders  Рік тому +1

      Для разнообразия, я словарь использовал в прошлом видео и подробно о нем рассказывал. ua-cam.com/video/eEbi7wdZNV4/v-deo.html

  • @AlexandrSpirit
    @AlexandrSpirit Рік тому

    Судя по видео и сообщениям в консоли, пандас использует regex.
    Почему вы не использовали regex для поиска и замены?
    Как-то сталкивался с задачей парсинга пяти разных прайсов (экселек) от пяти разных поставщиком в csv для залива на е-коммерс. Основная боль - привести все данные к общему виду, после которого парсинг - самое простое )
    Пробовал использовать пандас для чтения xls, но в итоге использовал xlrd
    У меня в эксельках были именованные поля, которые нельзя было считывать через адрес D4, только по названию.
    2-4т за вечер. Почему бы и нет? Если докстринги написать, покрыть тестами, asyncio использовать, то можно код к резюме прикладывать.

    • @oldcoders
      @oldcoders  Рік тому +1

      Регулярные выражения я так и не освоил. Поэтому не использую :)
      Для резюме очень слабенький проект имхо.

    • @AlexandrSpirit
      @AlexandrSpirit Рік тому

      @@oldcoders Слабый, возможно. Но покажет стиль.
      Самому регулярка тяжело даётся. Приходится себя заставлять. Но она быстрая и прям создана для работы со строками.
      Как xpath для xml

  • @alcgmr
    @alcgmr Рік тому +1

    где вставка с обизяной!?

    • @oldcoders
      @oldcoders  Рік тому +1

      Она не в каждом видео :)
      Для тех кто скучает по обезьяне есть видео - ua-cam.com/video/gNCqn3VZKvM/v-deo.html 😀

    • @rematender4269
      @rematender4269 Рік тому

      @@oldcoders Давно не смотрел, спасибо за напоминание и ссылку! После трудового дня хочется на чём-нибудь интеллектуальном отдохнуть :)

  • @sergey7106
    @sergey7106 8 місяців тому

    Программу для тестирования на базе вопросов xlsm) сложно для новичка написать ?

    • @oldcoders
      @oldcoders  8 місяців тому

      Не понял для тестирования чего, что значит на базе вопросов xlsm.

    • @sergey7106
      @sergey7106 8 місяців тому

      @@oldcoders есть файл xlsm. Там большое количество вопросов по разным темам и профессиям. Создать программу для тестирования проверки знаний ,с возможностью выбора вопросов из определенных тем из этой таблицы. То есть придется прописывать вопросы когда создаёшь файл программы или можно просто указать путь к таблице чтобы использовать эти вопросы?

    • @oldcoders
      @oldcoders  8 місяців тому +1

      @sergey7106 отличная задача. Нужно будет открыть файл, прочитать его, загрузить все вопросы в память (подумать как это сделать, какой тип данных применить, если есть варианты ответов - тоже подумать как их загрузить и как выделить правильный ответ).
      Затем подумать по какому принципу отбирать вопросы.
      Вобщем задача несложная если знать основы Python.
      Вперед! :)

    • @sergey7106
      @sergey7106 8 місяців тому

      @@oldcoders спасибо буду думать) главное автоматизировать как можно больше))лень двигатель прогресса

  • @user-cu1ij7lk1c
    @user-cu1ij7lk1c Рік тому +4

    Программист это тот кто тратит 1 час на задачу которую он бы решал 1 минуту, чтобы в будущем тратить 1 секунду на ее выполнение не только ему.
    Интересные задачи найдутся, важно их не пропускать :3
    И как писали ниже re помогло бы в решении, полезная штука на самом деле

  • @khnykaq8823
    @khnykaq8823 11 місяців тому

    Уж не знаю по поводу "от двух до пяти тысяч рублей". Мне кажется, на забугорных биржах индусы могут за такое взяться и "до двух тысяч". Правда, есть шанс, что можно получить программу такого же качества, как и та, которая создавала этот лог-файл

  • @user-ub3ze8mw9z
    @user-ub3ze8mw9z Рік тому

    А что значит, что поведение пандоса изменится?
    Можно ли это предотвратить?

    • @oldcoders
      @oldcoders  Рік тому

      Можно написать в примечаниях что «эта программа гарантированно будет работать с версией пандас 2.0.1, с последующими версиями работоспособность не гарантируется».
      Тогда заказчик, например через 3 года когда будет запускать программу , установит «старенькую» версию пандас , а не самую последнюю.
      Ну или я должен был другие использовать методы, по которым не вылезает предупреждение.

    • @JustForLools
      @JustForLools Рік тому +1

      1. Можно скомпилировать проект в exeшник и тогда ему уже никакие обновления pandas не страшны будут. 2. Использовать виртуальные среды, где прописаны все текущие версии библиотек и самого питона и отправлять все таким комплектом. 3. Изучить документацию pandas и найти альтернативную функцию, на которую они планируют перейти в ближайшем будущем.

  • @VB-dm6ps
    @VB-dm6ps Рік тому

    Дайте ссылку на фрилансе биржу

    • @oldcoders
      @oldcoders  Рік тому +1

      fl.ru
      freelance.habr.com
      freelance.ru
      И тд

  • @alxkir
    @alxkir Рік тому

    re>>CSV(delimiter=tab)

    • @oldcoders
      @oldcoders  Рік тому

      Это что, куда ?

    • @alxkir
      @alxkir Рік тому

      @@oldcoders для разбора текстовых данных удобно использовать регулярные выражения; вместо формата xls используйте формат csv(открывается excel), в качестве разделителя используйте таб или ";" сам csv можете создавать как просто текстовый файл так и с помощью встроенной библиотеки - сможете легко создавать файлы вплоть до млн строк (excel больше не откроет)

    • @oldcoders
      @oldcoders  Рік тому

      А! Да, спасибо! Я использую csv вовсю, (разделители запятые :) ), так как интернет магазин все в Csv экспорт-импорт.
      Ну задача у заказчика стояла именно текстовый файл разобрать и в xlsx записать, тут я не могу повлиять.

  • @dekor1981
    @dekor1981 Рік тому +2

    Моя текущая задача - поднять сарай на даче на 40 см от земли, а то врос уже (стал частью команды :))), смонтировать под ним свайный фундамент и поставить этот сарай на эти сваи. На каком языке лучше писать программу? Я вот по C# спец... но... думаю сложно будет на нем писать это...

    • @_garik__
      @_garik__ Рік тому +2

      на русском))
      напиши грамотное ТЗ и найми фрилансеров))

    • @Roltun
      @Roltun Рік тому

      А у меня дача, под ним блоки фундамента наклонились. Что делать? Алгоритм?

    • @user-gu1vo9hm9x
      @user-gu1vo9hm9x Рік тому

      ​@@Roltun дачу на домкрат.
      Блоки вынуть, подсыпать щебнем, вернуть обратно.

    • @Roltun
      @Roltun Рік тому

      @@user-gu1vo9hm9x ок

  • @melnikdaful
    @melnikdaful Рік тому

    А зачем для решения этой задачи применяется python? Это же типовая задача для power query, который штатно прилагается к MS Excel - там подобные трансформации данных даже не требуют написания кода, все решается готовыми шаблонами в визуальном интерфейсе.
    Не проверял конечно, но там такая задачка решается минут за 20-30...

    • @oldcoders
      @oldcoders  Рік тому +2

      Я не владею power query, зато владею Python 🤷🏻‍♂️ И еще этот канал - для изучающих Python, поэтому мы тут все задачи решаем им 😁

    • @evgenyjagushinsky6695
      @evgenyjagushinsky6695 Рік тому

      Зачем - не катит такой вопрос! ЗатЕм! Знаешь power query - вперёд туда где его применяют и о нём базарят)

    • @melnikdaful
      @melnikdaful Рік тому

      Какие Вы, однако, ранимые. Пытаюсь понять для себя - есть ли смысл изучать Phyton или нет. С одной стороны вроде как выполнение кода на Python происходит заметно быстрее, чем на MS PowerQuery. С другой стороны судя по всему процесс программирования для типовых задач (типовых для PowerQuery) на Python занимает заметно больше времени.
      Хотелось понять границу в которой переход на Python имеет смысл?
      Или это просто хайп забивать микроскопом (Python) гвозди в MS Excel?

    • @oldcoders
      @oldcoders  Рік тому +1

      Python это гораздо более универсальный инструмент. Экселевские задачи это только малая часть его возможностей. На питоне можно и игры писать и сайты и веб-приложения и сайты парсить, и телеграм-ботов писать и много чего еще.
      Так что имхо неправильно сравнивать Power Query и Python.

  • @excel2550
    @excel2550 Рік тому

    Прикольно, что эта задача решается без программирования с помощью Power Query в Excel

    • @oldcoders
      @oldcoders  Рік тому

      Да, естественно. А так же она решается в других табличных процессорах и на любом другом языке программирования. И вручную решается 😀
      Способов решения много. Я просто рассказываю про один из них.

    • @dinaberkovitch2253
      @dinaberkovitch2253 10 місяців тому

      power query замечательная вещь для обработки небольших таблиц ..
      иначе просто тормози т и зависает

  • @TheReiter4
    @TheReiter4 Рік тому

    Хм, перебирать датафрейм pandas в цикле - не очень хорошая идея. Если и дальше будете работать с табличными данными - советую поизучать эту библиотеку. За видео - спасибо.

    • @oldcoders
      @oldcoders  Рік тому +1

      Подскажите как правильно? Я в цикле текстовый файл читал, а датафрейм в цикле не перебирал все таки.

    • @JustForLools
      @JustForLools Рік тому

      @@oldcoders Где-то на стаке или в документации читал, что заполнять датафрейм данными - не рекомендуемая практика по причине низкой производительности такого подхода. Но думаю, что для выходного файла с четырьмя строчками это не критично:) А вообще рекомендуется создавать и заполнять сперва словарь списков python, а уже потом его превращать в датафрейм. Это якобы более производительное решение (сам не проверял:). В целом видео понравилось более чем, но для полноты и честности не хватает элементов гугления тех или иных функций сторонних библиотек. Новички могут не понять, откуда берутся знания о них и создается превратное ощущение, что автор просто на зубок выучил документацию к библиотекам:)

    • @oldcoders
      @oldcoders  Рік тому

      Вас понял, надо почитать про заполнение датафрейма данными, спасибо.
      Гугление - я вовсю показывал во всех предыдущих видео, про codewars например, в этом видео уж не стал, чтобы не растянуть на полчаса и чтобы видео не превратилось в хаос. Но вообще да, согласен, гугление - неотъемлемая часть процесса. Наверное лучше и его показывать.

  • @mrpain2004
    @mrpain2004 Рік тому

    Привет, зачем заморочки с кортежем если есть словарь?
    например ищем name = 'вася', создаем словарь аля:
    name_dict = {маша: красавица, вася: рокер}
    пишем:
    if name in name_dict.key(name.lower)
    return name_dict[name]
    думаю в данном случае можно было создать файл словаря, в функции открыл файл проверил по ключу, вернул значение или False ... и не было бы в коде кучи строк кода...

    • @oldcoders
      @oldcoders  Рік тому

      Можно было и словарь использовать, да. Но количество строчек кода особо не уменьшилось бы

    • @mrpain2004
      @mrpain2004 Рік тому

      @@oldcoders ммм, что значит не уменьшилось??? создаем в отдельном файле функцию, которая будет возвращать твой словарь, в мэйне ее импортируем и просто по данной функции ищем ключ-значение... в мэйне у тебя будет красиво ;) но это субъективное мнение такого же 40+ деда ;)

    • @oldcoders
      @oldcoders  Рік тому

      Ну распихать код по модулям это не значит уменьшить количество кода :)

    • @mrpain2004
      @mrpain2004 Рік тому

      @@oldcoders ну вообще как бы пихать всё в один файл вообще признак плохого вкуса ;)

    • @oldcoders
      @oldcoders  Рік тому

      Если бы это был большой проект - то конечно. В моем случае нужно отдавать файл человеку который совсем чуток дружит с питоном. Поэтому лучше чтоб все в одном файле.

  • @Artemon-yl5ze
    @Artemon-yl5ze Рік тому

    Почему не переписать логгер?

    • @oldcoders
      @oldcoders  Рік тому

      Что вы имеете в виду? Создателю криптобота? Насколько я знаю он уже на нем разбогател и выпускает более важные обновления чем добавить пробелы в логгер 🤷🏻‍♂️

  • @OLAFBONDD
    @OLAFBONDD Рік тому

    Не длинно и не скучно. Не все понял. Конечно, для шаблонов просятся словари, но там неупорядоченное хранение.

  • @sergeykha8014
    @sergeykha8014 10 місяців тому

    или просто скомпилить со всеми библиотеками и не парится, есть у клиента питон или нет, есть там библиотеки или нет

  • @romul23
    @romul23 Рік тому

    Это сколько стоит? Рублей 500?

    • @oldcoders
      @oldcoders  Рік тому

      А вот досмотрите до конца, там я об этом сказал 😀

  • @user-nq2mj6rz9q
    @user-nq2mj6rz9q Рік тому

    Хорошо поставленное ТЗ - это миф. Заказчик не разбирается в программировании (иначе он сам бы мог эту программу написать), а следовательно он принципиально не способен грамотно поставить ТЗ. Вот пример из ролика задача "заменить точки на запятые" правильно должна звучать так "присвоить столбцам с 5 по 47 тип float64". Поэтому программистам которые молятся на ТЗ и у которых главная отмазка "этого нет в ТЗ" надо ежедневно давать леща. Тем более что если для написания одной программы нет смысла писать универсальный обработчик, то для ежедневного написания программ для разных заказчиков написание универсального обработчика уже является необходимостью для самого программиста.

    • @oldcoders
      @oldcoders  Рік тому

      Да, согласен, ТЗ написанное программистом для программиста практически не существует. Поэтому я и сказал что вот обычная эксель таблица, пример выходного файла - лучшее тз. Если бы ее не было - я бы дергал заказчика как минимум 47 раз, по количеству столбцов :)

  • @Roltun
    @Roltun Рік тому

    Я придумал проект!

    • @oldcoders
      @oldcoders  Рік тому

      Так, какой?

    • @Roltun
      @Roltun Рік тому

      @@oldcoders Рассказывать не буду. Для тех кто учится ) сайт

  • @user-nf5kw6yj9d
    @user-nf5kw6yj9d 10 місяців тому

    Средний прогер с помощью ChatGPT такую прогу за пол часа сделает.. поэтому 2-5к под вопросом)

  • @Magic-oc1jk
    @Magic-oc1jk 2 місяці тому

    Есть Эксель. В нем есть vba. Питон тут собаке пятая нога

    • @oldcoders
      @oldcoders  2 місяці тому

      Задача стоит именно на питоне сделать

  • @AtridesMinsk
    @AtridesMinsk Рік тому

    А если вместо Pandas использовать Polars скорость обработки х10

  • @user-nl7lu9yj6w
    @user-nl7lu9yj6w Рік тому

    Мужик видимо занимается теханализом крипты)

  • @serygr
    @serygr Рік тому +1

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

    • @oldcoders
      @oldcoders  Рік тому +1

      Да, я тоже считаю что все эти ошибки, неправильности и поиски ответов в интернете надо показывать. Чтобы не казалось что программисты это сверхлюди выучившие наизусть язык программирования и все библиотеки и фреймворки :))

  • @L0wPressure
    @L0wPressure Рік тому

    Реклама курса английского в видео, где автор пишет splitTED, хотя даже IDE подчеркивает, намекая что это неправильный глагол) split - split - split.

    • @oldcoders
      @oldcoders  Рік тому

      О, не знал, прикольно. Ну я и не говорю что я круто по английски говорю 😀
      Впрочем пишут splitted тоже и пользуется :
      “Split” is the best and most recommended word to use rather than the slang word “splitted.”

    • @L0wPressure
      @L0wPressure Рік тому

      ​@@oldcoders лучше писать split. А там уж хз, я не филолог.
      К зрителям - обращайте внимание на подcветку от IDE. Она крайне полезна.
      В работе чуваки часто пропускают букву в названии переменной/класса/функции, или путают их местами. Потом хрен найдешь.
      Pycharm/Webstorm - это все видит и позволяет быстро отрефакторить.

  • @NamPofigat
    @NamPofigat Рік тому

    а че ты в шапке?

    • @oldcoders
      @oldcoders  Рік тому

      Здесь ответил на твой вопрос :
      Как я снимаю свои видео. Как пишу сценарий, снимаю на iPhone, использую телесуфлер и другие секреты.
      ua-cam.com/video/lZRssotg6Q0/v-deo.html

  • @sokur
    @sokur Рік тому +1

    За это платят деньги? 😳

  • @RudolfAbel
    @RudolfAbel Рік тому

    Regex

  • @DP-pt8zm
    @DP-pt8zm Рік тому

    Отличное видео но, конечно, до твоего 5 часового не дотягивает, там в середине было мясо 🥩. Спасибо!

    • @oldcoders
      @oldcoders  Рік тому

      😆 10-часовое !

    • @DP-pt8zm
      @DP-pt8zm Рік тому

      @@oldcoders Сорян, я только 5 часов информации пока выучил, дальше теряю сознание от потока информации. Но постоянно возвращаюсь к просмотру, думаю скоро всё смогу запомнить, бесценная инфа!

    • @oldcoders
      @oldcoders  Рік тому

      🤣🤣🤣🤣🤣

    • @DP-pt8zm
      @DP-pt8zm Рік тому

      @@oldcoders а если серьезно, благодаря тебе, во многом, не опускаю руки. Если будешь в Анталии, буду рад познакомиться лично!

    • @oldcoders
      @oldcoders  Рік тому +1

      Спасибо! Буду иметь в виду !

  • @artbek8697
    @artbek8697 Рік тому +2

    со скольки лет программистов в деды переводят?

    • @oldcoders
      @oldcoders  Рік тому +6

      Наоборот. Живут обычные деды и вдруг бац - хотят стать программистами.

    • @artbek8697
      @artbek8697 Рік тому +3

      @@oldcoders если я в 44 хочу стать программистом? я дед или еще нет?)

    • @oldcoders
      @oldcoders  Рік тому +4

      Дед 😀

  • @sergeishamanov1597
    @sergeishamanov1597 Рік тому

    На vba делается за пару часов😂😂😂

    • @oldcoders
      @oldcoders  Рік тому

      Кто какой язык знает, тот на нем и делает, да.

  • @komdiv4906
    @komdiv4906 Рік тому

    Это все можно было легко сделать в самом екселе и без всяких питонов

    • @oldcoders
      @oldcoders  Рік тому +1

      У нас канал изучающих питон ☝️

  • @igorseledtsov7345
    @igorseledtsov7345 Рік тому

    Видимо время парсинга вообще не важно.. да тут и сшелла хватило бы.. зачем тут чтото другое?

    • @oldcoders
      @oldcoders  Рік тому

      Переведите на русский пожалуйста 😀

    • @igorseledtsov7345
      @igorseledtsov7345 Рік тому

      @@oldcoders
      Написано то, что задаче решается средствами Shell. Ну не в 3 строки а примерно в 15-20.
      Вопрос зачем городить огород из питона?
      Надеюсь сейчас понятною Хотя что было непонятно ранее, непонятно уже мне. Ну да ладно. Бывает.
      А если надо быстро, то надо на Си это строк примерно 30... Но вам по задаче этого не надо.

    • @oldcoders
      @oldcoders  Рік тому

      Средствами shell не умею, за сим горожу огород из питона

    • @igorseledtsov7345
      @igorseledtsov7345 Рік тому

      @@oldcoders То же ответ...
      Но вы понимете надеюсь на абсурдность ситуации?

    • @oldcoders
      @oldcoders  Рік тому

      Нет 😀 Тысячи программистов решают задачи парсинга файлов при помощи Питона и не считают ситуацию абсурдной 😀

  • @daitedve1984
    @daitedve1984 Рік тому

    Пестон сакс! Если тыт дед, то ты очень глупый дед, если его используешь!

  • @Sibirskiy-Pathan38
    @Sibirskiy-Pathan38 Рік тому

    Здравствуйте можите ключ сломать? Я вам программу подгоню! Вы мне взлом! 😊 есть тот кто доработал её! Только вот не люди а крысы пошли! Им совет они фуфло😮 есть телеграмм?

    • @oldcoders
      @oldcoders  Рік тому

      Не, взломами не занимаюсь

  • @brkfdd552
    @brkfdd552 Рік тому

    Почему все компутерные диды стесняются плеши носят нелепые кепки в помещении? Это выглядит как Бушеми в школе.

    • @oldcoders
      @oldcoders  Рік тому

      Я рассказывал в своем видео «Как я снимаю видео»

  • @Old_Bell
    @Old_Bell 8 місяців тому

    где библиотеки брать, в какой форме и где располагать, чтобы phyton эту библиотеку увидел при выполнении pip?

    • @oldcoders
      @oldcoders  8 місяців тому +1

      pip сам скачивает из интернете откуда надо и устанавливает вам в ваше текущее виртуальное окружение

  • @andreykuznetsov7442
    @andreykuznetsov7442 Рік тому +2

    Советую воспользоваться именованными группами в regex:
    string = 'ASK = 123456'
    match = re.search(r'(?P\w+)\s*[:=]?\s*(?P\d+)', string)
    print({"name": match["name"], "value": match["value"]})
    # выведет словарь {'name': 'ASK', 'value': '123456'}

    • @oldcoders
      @oldcoders  Рік тому

      Спасибо!! Я не люблю регулярки, ужас:)

    • @andreykuznetsov7442
      @andreykuznetsov7442 Рік тому +2

      @@oldcoders Это нормально, их трудно любить. Зато они часто полезны. Спасибо за видео! Узнаю от вас много нового

    • @oldcoders
      @oldcoders  Рік тому

      Не понимаю как человек, знающий регулярные выражения может говорить что узнает от меня много нового?! 😆 Это я вот от вас узнаю про именованные группы 😀

    • @user-ye6ow8gn5j
      @user-ye6ow8gn5j Рік тому +2

      @@oldcoders просто вы ими не пользуетесь -> ибо надо разобраться -> поэтому не пользуюсь -> надо время чтобы разобраться -> закину вопрос гуглу --- и так без конца. Как и всё остальное, разобраться с регулярками требует некоторого времени, но, разобравшись, обретаешь суперсилу :D даже в примитивных обиходных вопросах! Рекомендую.

    • @daitedve1984
      @daitedve1984 Рік тому

      Именованные группы сильно замусоривают сам регэксп - никогда их не использую.