Only Analyst
2.55K subscribers
140 photos
20 videos
157 links
Канал для всех, кто интересуется аналитикой данных и хочет изучить данную профессию
@onlyanalyst
Download Telegram
📊 Всем привет! Сегодня разберем важную тему для решения рабочих задач: создание колонок по условию в Pandas

💂‍♀️ В основном создание колонок по условию требуется для изменения гранулярности данных, например, вместо того, чтобы отдельно рассматривать пользователей по конкретному возрасту, удобнее сформировать из них смысловые группу: молодые (18-30), средние (31-59) и пожилые(60+).

🏕️ Метод 1: iterrows() построчно обрабатывает в Data Frame записи и применяет условную логику для создания нового столбца:

for index, row in df.iterrows():
if condition:
df.at[index, 'new_column'] = value
else:
df.at[index, 'new_column'] = other_value


👩‍🎤
Метод 2: apply() в pandas позволяет нам применить функцию по осям (строки, колонки) к Data Frame:

def conditional_logic(row):
if condition:
return value
else:
return other_value

df['new_column'] = df.apply(conditional_logic, axis=1)


🕵️‍♀️ Метод 3: np.where() обеспечивает векторизованный подход к созданию условного столбца. Мы можем указать условие и присвоить значения на его основе:

df['new_column']=np.where(condition, value, other_value)

👍
Метод 4: np.select() позволяет нам создать новый столбец на основе нескольких условий:

conditions = [condition1, condition2, condition3]
choices = [value1, value2, value3]
df['new_column'] = np.select(conditions, choices, default=other_value)

🏎️ Давно мы не устраивали забеги на скорость, поэтому создадим DataFrame от 100 до 10 000 записей с возрастами от 18 до 80.

🏁 Результаты впечатляющие: iterrows очевидно занимает последнее место, самый популярный метод apply быстрее примерно в 7 раз при 10 000 строк. В упорной борьбе побеждает np.where, который в 263 раза быстрее, чем iterrows, в 35 раз быстрее apply и всего лишь в 1.3, чем np.select.

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

✒️ Какие еще применения условного создания колонок Вы знаете? Какой метод используете?

😀 Подписаться

#pandas #numpy #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍74
📕 Вышел новый Jupyter Notebook 7

ℹ️ Главные изменения: совместная работа в режиме реального времени, интерактивная отладка, оглавление, темы, темный режим, компактный просмотр на мобильных устройствах.

🐞 В Notebook 7 завезли интерактивный отладчик от JupyterLab, который позволяет пошагово просматривать код ячейка за ячейкой. Вы также можете устанавливать точки остановки и проверять переменные.

👯 Совместная работа в режиме реального времени позволяет делиться своим блокнотом с другими пользователями и редактировать его. Чтобы начать активировать совместную работу, необходимо установить расширение jupyter-collaboration:

pip install jupyter-collaboration

🌚 Темная тема теперь доступна в Jupyter Notebook по умолчанию. Вы также можете установить множество других тем JupyterLab. Например, для установки ночной темы JupyterLab:

pip install jupyterlab-night

💁‍♂️ В посте выделил самые интересные для себя нововведения, но более подробно можете ознакомиться по ссылкам:

🔗 Документация
🔗 Технические подробности

🏥 Есть много способов, которыми вы можете принять участие в работе над Notebook 7. Например, внести свой вклад в разработку, документирование и дизайн Jupyter Notebook на GitHub.

🔗 Ссылка на открытые «good first issue»

✒️ Как Вам обновления? Как по мне самый мажорный апдейт за долгие годы. И так как Jupyter является инструментом №1 для анализа данных, поэтому очень важно следить за его новыми возможностями.

😀 Подписаться

💬 Чат

#новости #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥169👍2🥰2👎1
📄 Сегодня разберем одну из самых популярных задач для аналитиков данных по Python.

💼 Почти ни одно техническое собеседование не обходится без задания «Напишите функцию, которая определяет является ли строка палиндромом?»

🎓 Палиндром - это число, слово или текст, одинаково читающееся в обоих направлениях. Например, 101, «топот», «а роза упала на лапу Азора» являются палиндромами.

🎸 Рассмотрим несколько вариантов решения и сравним их по скорости:

✂️ Срезы

def is_palindrome(s):
return s == s[::-1]


🔂 Цикл

def is_palindrome(s):
reversed_string = ""
for char in s:
reversed_string = char + reversed_string
return s == reversed_string

Функция reversed()

def is_palindrome(s):
return s == ''.join(reversed(s))

🔃 Рекурсия

def is_palindrome(s):
if len(s) <= 1:
return True
return s[0] == s[-1] and is_palindrome(s[1:-1])

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

🤖 Небольшое задание, попробуйте добавить еще проверку на пробелы, знаки препинания и заглавные буквы. Ответы присылайте в комментарии.

😀 Подписаться

💬 Чат

#собеседование #python
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥6👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Python в Excel: crossover эпизод, который мы заслужили.

📰 Понимаю, что немного опоздал с breaking news, но зато было чуть больше времени разобраться в вопросе.

🧃Небольшая выжимка и ссылки для тех, у кого мало времени:

🧮 Расчеты выполняются в облаке, а значит будет работать на слабых машинах

👯‍♂️ Наконец-то не придется переливать информацию из одной системы в другую и можно удобно делиться исследованиями, а значит скорость и качество коммуникации с бизнесом вырастит (нет)

🐍 Совместный проект Anaconda и Microsoft, а значит огромное количество библиотек для анализа данных уже под капотом

🎗️К проекту приложил руку Гвидо ван Россум (автор Python), который уже 3 года работает в Microsoft (Представили себе его собеседование на знание Python, когда устраивался?)

🔗 Как получить доступ
🔗 Основы работы
🔗 Работа с колонками
🔗 Фильтрация таблиц
🔗 Анализ текста
🔗 Работа с ML
🔗 Визуализация данных
🔗 Презентация данных
🔗 Лайфаки
🔗 Курс по анализу данных с Python в Excel

🌦️ Немного поделюсь еще своими мыслями и добавлю несколько ложек дегтя:

🥄 Функция классная, но она опоздала на пару лет для тех, кто уже плотно пересел на Python, но зато станет отличным «мостиком» для Excel аналитиков в дивный новый мир.

🥣 Не забываем, что необходима платная подписка, чтобы пользоваться всеми благами цивилизации, а количество удобных способов из Python перенести данные в Excel все еще много. Так что многие предпочтут сделать костыль, чем не потратить лишний рубль.

🍯 Если уже решили убрать Excel из резюме и забыть как страшный сон, то пока не спишите. Рискну предположить, что в скором времени грань между Python и Exсel будет все эфемернее.

✒️ Что думаете о «новинке»? Будете использовать?

😀 Подписаться

💬 Чат

#python
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍8🔥2🥰2