#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Datalytics
Интересная статья про разбор преимуществ языка R перед Python для задач анализа данных и data science

Основная мысль статьи, как мне кажется, вертится вокруг того, что R изначально был задуман как язык для различных манипуляций с данными, в итоге в нём предусмотрены необходимые типы данных, векторизация, удобная работа с табличными данными, пайплайны обработки данных и многое другое. В Python это всё тоже есть, но в виде «наворачиваемых» сверху пакетов, таких как numpy и pandas, но им неминуемо приходится адаптироваться к ООП-шной архитектуре Python, от чего возникает ряд решений, которые кто-то может назвать костыльными

Лично для меня Python всё-таки остаётся основным языком в анализе данных, так как уже слишком много времени и ресурсов затрачено на то, чтобы его изучить. Но для кого-то эта статья может быть хорошим набором аргументов для того, чтобы изучить R

https://habr.com/ru/post/670250/
Библиотеки Python для работы с базами данных и SQL-запросами

1. sqlite3
Библиотека позволяет работать с базами данных SQLite, которые записывают и читают данные с файлов, а значит пользователю не нужно устанавливать сервер для БД, что очень удобно)

2. psycopg2
Модуль для работы с базами данных PostgreSQL. Также позволяет все основные функции с базой данных: работа с таблицами, написание запросов и т.д.

3. mysql-connector-python
Как уже понятно из названия, модуль позволяет подключаться к БД MySQL) Включает в себя все те же функции, что и описанные выше модули. Подробная документация доступна по ссылкам в названии модулей

4. pymssql
Модуль позволяет подключаться к БД Microsoft SQL Server

5. SQLAlchemy
Алхимия при работе с базами данных из python) Библиотека позволяет подключаться к различным БД. Есть множество функций: создание/изменение/удаление таблиц, извлечение/вставка данных, написание запросов, изменение данных. Библиотека позволяет работать с БД с помощью объектно-ориентированного кода, не используя при этом SQL

6. PandaSQL
Модуль позволяет расширить функционал pandas и писать SQL запросы прямо к датафреймам. Как вариант использования модуля с другими библиотеками, после подключения к БД и извлечения данных, к датафрейму можно писать запросы как будто бы к обычной таблице в БД, не используя синтаксис pandas
Forwarded from Python Skills 🐍
Добавляем классу большую функциональность

Декоратор @classmethod — это метод, который получает класс в качестве параметра, который принято обозначать как cls. Он указывает на класс ToyClass, а не на объект этого класса.

Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.

Проще говоря, @classmethod — это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.

#oop #classmethod
Forwarded from Python Skills 🐍
Наиболее частый элемент в списке

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

Большинство прибегает к использованию циклов для решения этой проблемы. Но вы можете упростить себе задачу, применив несколько встроенных функций.
Forwarded from Python Skills 🐍
Превью из длинного текста

Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.

Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.

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

#строки #textwrap
Forwarded from Python Skills 🐍
Присваиваем значение переменной окружения

Для присвоения значения любой переменной среды используется функция setdefault().

Давайте напишем код, чтобы с помощью функции setdefault() изменить значение переменной DEBUG на True (по умолчанию установлено False). После установки значения мы проверим его функцией get().

Если мы сделали всё правильно, выведется сообщение «Режим отладки включен», в противном случае – «Режим отладки выключен».
Forwarded from Python Skills 🐍
Красивые таблицы в терминале

PrettyTable – это простая библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить привычным способом через pip.

Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.

Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами. Так что возможностей у этого модуля предостаточно.

#таблицы #prettytable
Forwarded from Python Skills 🐍
[Python] С помощью Python нужно записать данные в файл, но только в том случае, если файла ещё нет. Какой режим указать в инструкции open()?
Anonymous Poll
15%
'x'
31%
Никакой. Нужна предварительная проверка os.path.exists()
49%
'w'
5%
'r'
Forwarded from Python Skills 🐍
Находим файлы по шаблону

Основной фишкой модуля glob является удобная и лаконичная работа с поиском файлов по паттернам. Более того, можно даже пройтись по директориям рекурсивно.

В одноименный метод glob передаётся шаблон для поиска файлов, а возвращается список с результатами. Все методы следуют механизму и правилам сопоставления паттернов в стиле Unix.

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

#glob
Forwarded from Python Skills 🐍
Работа с датами

Модуль python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом:

pip3 install python-dateutil

#Python
Forwarded from Python Skills 🐍
validate_email — это простой модуль для валидации email-адресов.

Модуль предоставляет одну основную одноименную функцию, предназначенную для валидации адреса, с помощью уже написанных регулярных выражений. Также в функции реализована проверка mx-записи у сервера и существования переданного адреса, за это отвечают необязательные параметры-флаги функции verify и check_mx.

Функция validate_email проверяет не на существование email-адреса, а возможность на его существования. На фото выше приведён пример.

Модуль отлично подойдёт для различных форм регистрации/входа и в различных других проектах.

Стоит отметить, что при обращении validate_email к DNS записям необходимо предварительно установить модуль py3dns.

Ставится командой pip install validate_email
Простенькая документация и примеры кода здесь.
Forwarded from Python Skills 🐍
Именованные кортежи

Кортежи tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы.

Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections.

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

#namedtuple