#python python... PYTHON 🔛 🚀
11 subscribers
912 photos
7 videos
158 files
1.54K links
Download Telegram
Expert Python Programming (2020)
Автор: Michal Jaworski, Tarek Ziade
Количество страниц: 646

Несмотря на легкость использования Python, содержать код читабельным, многократно используемым и легко поддерживаемым — довольно сложная задача даже для опытного программиста. Третье издание Expert Python Programming, дополненное передовыми практиками, полезными инструментами и стандартами, используемыми профессиональными разработчиками, поможет вам улучшить качество вашей работы.

Скачать книгу
Создание объектов, поддерживающих выражение with
#Python

Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit:

class Connection:
 def __init__(self):
 ...

 def __enter__(self):
 # Инициализируем соединение...

 def __exit__(self, type, value, traceback):
 # Закрываем соединение...

with Connection() as c:
 # __enter__() executes
 ...
 # conn.__exit__() executes

Это — наиболее распространённый способ реализации возможностей менеджера контекста в Python, но то же самое можно сделать и проще:

from contextlib import contextmanager

@contextmanager
def tag(name):
 print(f"<{name}>")
 yield
 print(f"</{name}>")

with tag("h1"):
 print("This is Title.")

Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.
Как выстрелить себе в ногу с помощью Python, часть 1

https://proglib.io/w/017fc11b
Для чего нужны списки в Python?
#Python
Списки в Python — одна из 4 структур данных, предназначенных для работы с итерируемыми объектами. Представим, что нам нужно написать скрипт, который проверяет, является ли модель машины производства компании Tesla. Код будет выглядеть следующим образом:
# Объявим переменную, содержащую список всех моделей машин tesla_models = ['Model S', 'Model 3', 'Model X', 'Model Y'] # Название машины - это строка. Строки объявляются в двойных (") или одинарных (') кавычках # Проверем, производит ли Tesla модель AMG GT 4 door. содержащую список всех моделей машин print('AMG GT 4 door' in tesla_models) # Выведет False (Ложь). Эту модель производит Mercedes-Benz # А Model 3 – флагманская модель Tesla print('Model 3' in tesla_models) # Выведет True (Истина) # Значения регистрозависимы — Model Y не одно и то же, что и model y print('model y' in tesla_models) # Выведет False
🔁 Как писать «правильные» циклы на Python: разбираемся на примерах

Несколько соображений о том, как сделать код циклов Python более производительным и ясным с помощью функций встроенного модуля itertools: product, isslice, takewhile.

https://proglib.io/sh/QmYbLWSflt
curdir = os.path.abspath(os.path.dirname(__file__))
background_path = os.path.join(curdir,"background.psd")
star_path = os.path.join(curdir,"star.jpg")
🐍 Топ 10 трендов разработки на Python в 2020 году

Мы каждый день узнаем о новых технологиях и языках программирования. Единственный язык, который оставался неизменным на протяжении многих лет – это Python.

https://proglib.io/sh/cECwniTbgo
Forwarded from Инжиниринг Данных (Dmitry Anoshin)
Введение в Pandas на русском. https://dfedorov.spb.ru/pandas/
Вчера вышел Python 3.9! 🥳
Лично я по питону сильно соскучился, ибо уже второй месяц пишу только на C и плюсах, а тут еще и обнова подъехала 😎

Итак, что нового и действительно интересного:
1. Новые операторы для словарей: finally можно нормально их мержить:
dict1 = {'x': 1, 'y': 2}
dict2 = {'x': 4, 'z': 5}
print(dict1 | dict2) # выведет {'x': 4, 'y': 2, 'z': 5}
2. Методы строк, позволяющие получить строку без указанного префикса/суффикса:
"abcdef".removeprefix("abc")  # выведет def
"abcdef".removesuffix("def") # выведет abc
3. Более удобные декораторы, теперь там можно делать что-то такое:
@buttons[0].clicked.connect
def spam():
...

📗 Также добавили плюшек в аннотации, обновили поддержку Юникода и много других мелочей, о которых можно почитать на официальном сайте.
Отдельный респект за очередную отсылку к Монти Пайтону на странице обновы
Forwarded from Datalytics
Дмитрий Федеров перевёл официальные туториалы по Pandas на русский язык. Теперь это один из тех (немногочисленных) русскоязычных материалов, которые я могу смело рекомендовать любому, кто начинает изучать Pandas

http://dfedorov.spb.ru/pandas/
Forwarded from Datalytics
🐼 Pandas (part I) 📈

**Для начинающих**

Руководство по Pandas для начинающих
Курс по работе с Pandas
Визуальный гайд по работе с Pandas
Русскоязычный гайд про Pandas
Видеолекция Ильи Щурова про Pandas
Обзорная статья про Pandas
🔥 Русскоязычный гайд по Pandas от Алексея Куличевского
🔥 Введение в pandas: анализ данных на Python (на русском)
Как устроены Series в Pandas
Советы о том как выбирать колонки датафрейма в Pandas
Всеобъемлющий туториал по Pandas
Иллюстрированная статья про функции объединения в pandas
Чтение файлов csv, создание dataframe и фильтрация данных
100 полезных приёмов и хаков в Pandas от Kevin Markham, собранные в одном ноутбуке
Агрегация и группировка данных с помощью pandas
Мини-курс по Pandas на Kaggle
🔥 Перевод официальных туториалов Pandas на русский

**Оформление**

Вывод датафреймов с помощью styling
Форматирование таблиц в Pandas
Как создать оформленную HTML таблицу из pandas DataFrame

**Методы**

Обзор метода read_csv
Выбор сэмпла из датафрейма с помощью sample
Метод query
Трансформация данных (pivot, stack, unstack)
Как сделать ВПР (VLOOKUP) в Pandas
Map и replace
Выбор данных (slicing)
Почему Method Chaining — это хорошо
Melt в pandas
Apply и lambda
Как работают группировки
Новые методы в pandas 0.25.0
iterrows() vs itertuples()
Методы трансформации данных
Методы loc и iloc для индексации по датафрейму
Как разбить данные на диапазоны в pandas: cut и qcut
Метод resample для изменения группировки данных, содержащих дату-время
Три метода Pandas, о которых вы, возможно, не знали
4 крутых функции Numpy
Обзор пяти простых, но эффективных, методов pandas: shift, mask, value_counts, nlargest, nsmallest
Обзор нескольких новых функций в Pandas 1.0
Forwarded from Datalytics
🐼 Pandas (part II) 📊

Tips & Tricks

Шпаргалка по Pandas 1
Шпаргалка по Pandas 2
Набор небольших советов
Обзор различных хаков Pandas
Подборка полезных сниппетов 1
Подборка полезных сниппетов 2
Шпаргалка по работе с различными форматами файлов (csv, xml, json и многие другие)

Другое

Выгрузка файла csv из Jupyter Notebook через браузер
Как в Pandas разбить одну колонку на несколько
Сборник упражнений по Pandas
Примеры использования нестандартных команд в Pandas
Туториал по обработке данных
Советы для эффективной обработки данных в Pandas
Импорт данных в Pandas
Очистка и подготовка данных
Статья про индексы в датафреймах
Что под капотом у фильтрации в Pandas
Как трансформировать JSON с множественными уровнями вложенности в DataFrame
Как ухаживать за пандами [видео]
Как сделать исключение одного датафрейма из другого
Обработка данных в разных форматах
Regex with Pandas and Named Groups
Что принёс нам Pandas 1.0
Примеры использования pandas для тестирования алгоритмов сбора и обработки данных
Как использовать if-else конструкции для формирования новых колонок в pandas
Библиотека sidetable — value_counts() на стериодах
Про
преобразование значений из численного в категориальный
Индексы в Pandas

Производительность

Сравнение производительности функций
Руководство по использованию pandas для анализа больших датасетов
Организация циклов через iterrows и apply
Почему каждый Data Scientist должен знать Dask
Производительность циклов в pandas
Оптимизация памяти при работе с pandas
Советы как снизить потребление памяти в Pandas
Как анализировать большой объем данных с помощью библиотеки vaex
Ускорение обработки больших датасетов с помощью dask и parquet
Добавляем параллельные вычисления в Pandas с pandarallel
Ian Ozsvald - Making Pandas Fly