PM.Python
17 subscribers
22 photos
1 video
22 links
Покажем как легко применять Data Science в Управлении Проектами
Download Telegram
⭐️Полезные приемы для работы с данными: Работа с датами в датафреймах Pandas.

Собрали подборку интересных и полезных инструментов для работы с датами в Pandas, которые сэкономит Вам кучу времени и нервов.

1. Конвертация в формат даты pd.to_datetime()
Это основа основ. Превращает всё что угодно в нормальный DateTime объект Pandas.
dataset['Финиш'] = pandas.to_datetime(dataset['Финиш']) 

date_str = "20231115"
correct_date = pandas.to_datetime(date_str, format='%Y%m%d')


2. Извлечение компонентов даты .dt()
Для многих задач полезно извлекать компоненты даты: год, месяц, день.
dataset['Финиш_Год'] = dataset['Финиш'].dt.year
dataset['Финиш_Месяц'] = dataset['Финиш'].dt.month_name(locale='ru_RU.UTF-8')
dataset['Финиш_День'] = dataset['Финиш'].dt.dayofweek
dataset['Финиш_Квартал'] = dataset['Финиш'].dt.quarter


3. Дополнительные операции с датами
И еще несколько примеров работы с датами.
dataset['Финиш_Выходной'] = dataset['Финиш'].dt.dayofweek > 4
dataset['Финиш_сдвиг'] = dataset['Финиш'] + pandas.offsets.BDay(1)
dataset['Финиш_конецмесяца'] = dataset['Финиш'].dt.is_month_end


❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #фича #python #pandas
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📱 Random — небольшой модуль для работы со случайными значениями. Пригодится любому руководителю для автоматизации принятия решений (шутка). Незаменимо для сценарного анализа и подтверждения гипотез.

Основные возможности
💬 Простая генерация случайных чисел
💬 Выбор случайного значения из списка
💬 Создание случайного списка или перемешивание

Установка
pip install random


Примеры использования
import random

list = ["Подрядчик 1", "Подрядчик 2", "Подрядчик 3", "Подрядчик 4", "Подрядчик 5"]

# выбор значения из списка
print(random.choice(list))

# выбор нескольких уникальных значений
print(random.sample(list, k=2))

# перемешать список
random.shuffle(list)
print(list)


Можно протестировать самому в Colab!
🔗 Ссылка на платформу

#pmpython #библиотеки #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Нужно быстро оценить связи между данными нескольких столбцов в таблице - на помощь приходит Scatterplot Matrix.

Один из типовых шаблонов графиков Plotly - Scatterplot Matrix (SPLOM). Скэттерплот матрица это массив точечных диаграмм, показывающих связь между всеми данными одного столбца и всеми данными каждого столбцов таблицы. Шаблон станет незаменимым инструментом для выявления корреляций и зависимостей между признаками набора данных, а также выявления пустых категорий данных.

Простой пример на Python
import plotly.express as px
df = px.data.iris()
fig = px.scatter_matrix(df)
fig.show()


Какие есть возможности
🗣 Быстро визуализировать все данные в таблице.
🗣 Дополнительно раскрашивать данные для поиска многомерных связей.
🗣 Выбирать список используемых столбцов для графика.


❗️Посмотрите готовый пример использования в собранном блокноте с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⭐️Полезные приемы для работы с данными: диалоговая загрузка локальных файлов в проект Colab.

Наряду с загрузкой файлов с облачного хранилища или добавления файлов в меню проекта, Colab дает возможность загружать свои файлы через всплывающие диалоговое окно при запуске кода! Для этого используется модуль files() библиотеки google.colab.

Простой пример на Python
from google.colab import files 
uploaded = files.upload()


При исполнении кода всплывает окно с указанием пути к пользовательскому файлу, а после выбора загруженный документ появится в боковом меню «Файлы».

💯 Комбо пример для тренировки: загрузи свой файл в блокнот Colab с помощью files(), выведи график по всем столбцам в формате scatter_matrix() и раскрась его по столбцу, случайно выбранному через random().

❗️Посмотрите пример с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #фича #python #googlecolab
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как генерировать вспомогательные графики для повышения наглядности основной диаграммы в Plotly.

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

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

Простой пример на Python
fig1 = px.scatter(dataset, x='Старт', y='Финиш', 
marginal_x ='histogram',
marginal_y ='box',
color='Статус')
fig1.show()


Есть несколько вариантов графиков, реализуемых аргументом marginal:
💬 histogram – обычная гистограмма по сумме значений.
💬 rug – показывает наличие значения на оси.
💬 box – компактный график одномерного распределения вероятностей.
💬 violin – показывает распределение плотности.

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Ускорение получения и обработки данных: парсинг таблиц из html страниц.

Простая и супер эффективная функция парсинга таблиц из вебстраниц в библиотеке Pandas – сегодня показываем read_html()!

Пример на Python
import pandas as pd

dataset = pd.read_html(io='https://www.cbr.ru/hd_base/micex_doc/')[0]

print(dataset)


Как это работает?
Функция загружает все таблицы, которые есть по указанному нами адресу в виде списка таблиц. Есть возможность настраивать разделители десятичных и разрядов.

❗️Посмотрите пример загрузки данных с сайта ЦБ РФ!
🔗Ссылка на блокнот Colab

#pmpython #парсинг #автоматизация #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как гибко настраивать символы маркеров для повышения читаемости диаграмм рассеивания в Plotly?

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

Symbol — это аргумент Plotly добавляющий дополнительную классификацию по уникальным значениям дополнительно выбранной колонки. Теперь можно искать многомерные зависимости на Ваших диаграммах.

Простой пример на Python
fig1 = px.scatter(dataset, x='Старт', y='Финиш', 
color='Статус',
symbol = 'Статус')
fig1.show()


Что получим на выходе
🗣Данные классифицированы и по цвету и через символы.
🗣Показали на диаграмме классы сразу по двум столбцам.

И ещё!
Используя дополнительный аргумент symbol_sequence, можно указать порядок назначения иконок в символы. Виды иконок можно посмотреть по ссылке.

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📱 Pyvis — библиотека для создания интерактивных сетевых графов. Под капотом она использует мощь Vis.js, но предоставляет удобный Python-интерфейс. Результат — красивые, отзывчивые графы, которые можно крутить, масштабировать и раскрывать прямо в браузере. Крайне продвинутый инструмент для визуализации календарно-сетевых графиков и других многоуровневых зависимостей проекта.

Основные возможности
💬 Интерактивность: Узлы можно перемещать, кликать по ним, скрывать группы.
💬 Гибкая настройка: Группировка, внешний вид, физика взаимодействий.
💬 Экспорт: Сохранение в автономный HTML или изображение.

Установка
pip install pyvis


Пример использования
from pyvis.network import Network

g = Network()
g.add_nodes([1,2,3], value=[10, 100, 400],
label=['Блок 1', 'Блок 2', 'Блок 3'])
g.add_edges([(1, 2),(1, 3),(2, 3)])
g.show('g.html')


Подробнее
🔗 Сайт проекта

#pmpython #библиотеки #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💯 Ежегодно в первый четверг ноября в мире отмечается Международный день проектного менеджера.

🎁Поздравь себя или близкого сердцу проектного менеджера с помощью этого чудесного промпта для генерации видео:
Cute kitten project manager, energetically organizing paperwork, wearing a tiny suit and glasses, surrounded by miniature office supplies. Playful feline paws sorting files, meowing instructions. Whimsical cartoon animation, vibrant colors, upbeat music. Medium shot, dynamic camera angles.


С праздником!

#pmpython #нейросети #промпт #wan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как показать распределение данных и выбросы

Хотите наглядно отобразить распределение Ваших данных с плотностью вероятности? Попробуйте график Violin в Plotly! Это комбинация box-plot и kernel density estimation. График позволяет увидеть форму распределения, медианы, квартили и выбросы одновременно по одному параметру.

Простой пример на Python
import plotly.express as px
df = px.data.tips()
fig = px.violin(df, y="total_bill")
fig.show()


Для чего использовать
🗣 Показать плотность распределения данных по одному измерению.
🗣 Выявить выбросы и оценить их объем.
🗣 Сравнить нескольких групп данных по их распределению.

❗️Посмотрите готовый пример использования в собранном блокноте с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💯 Дорогие друзья и коллеги, вот и подошел к концу 2025 год! Спасибо всем кто был рядом в счастливые и трудные моменты.

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


С праздником!

#pmpython #нейросети #промпт #nanobanana
Please open Telegram to view this post
VIEW IN TELEGRAM
1🎉1
🎙Визуализация данных: Как одной командой проводить накопительные расчеты в графиках Plotly?

Что нужно сделать чтобы получить накопительные графики в excel? Сделать строки с суммами за предыдущие периоды и построить по ним диаграммы.

Что нужно сделать в Plotly – добавить в функцию px.histogram аргумент cumulative=True.

Простой пример на Python
fig = px.histogram(df, 
x="Прогресс",
cumulative=True)
fig.show()


Что получим на выходе
🗣Следующий столбец будет включать в себя сумму всех предыдущих.
🗣Исходные данные останутся без изменений и добавлений «мусорных» строк.

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как добавить диаграмму в другую диаграмму?

Если Вы хотите создавать по-настоящему гибкие и информативные графики в Plotly, используйте метод add_trace().

Обычно Plotly строит график "в один клик". Это круто для быстрых набросков. А вот когда нужно объединить на одном холсте разные источники данных и сделать более сложную визуализацию без add_trace() не обойтись.

Простой пример на Python
fig1 = go.Figure()
fig1.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 1, 2]))
fig1.add_trace(go.Scatter(x=[1, 2, 3], y=[2, 4, 1]))
fig1.show()


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

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗 Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как разместить несколько графиков на одном холсте в Plotly – сделай свой дашборд с помощью make_subplots()!

Если вам нужно сравнить тренды или показать разные метрики в одном окне, создание отдельных рисунков может быть неудобным. Для таких задач в Plotly есть мощный инструмент – make_subplots().
Эта функция позволяет создавать сетку блоков и размещать в них любые графики, настраивая их взаимное расположение, оси и размеры.

Простой пример на Python
fig = make_subplots(
rows=1, cols=2,
subplot_titles=("Тенденция", "Объемы"))


Фишки которые полезно знать:
🗣 Синхронизация осей – оси графиков могут быть синхронизированы;
🗣 Сложные сетки – настраивай границы графиков;
🗣 Вторичные оси – все еще можно наложить два графика в одну ячейку.

❗️Посмотрите готовый пример использования в собранном блокноте с комментариями, скачайте и используйте в дальнейшем!
🔗 Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Когда хочешь проанализировать концентрацию событий или количество связей применяй Density Heatmap (тепловая карта плотности) из Plotly.

Функция density_heatmap() по сути является 2D гистограммой. Вместо отрисовки каждой отдельной точки, этот график разбивает пространство на прямоугольные ячейки и закрашивает их в зависимости от количества попавших в них наблюдений. Плюс Plotly в том, что график получается интерактивным "из коробки" по выбранным вами столбцам таблицы.

Простой пример на Python
import plotly.express as px
df = px.data.tips()
fig = px.density_heatmap(df, x="total_bill", y="tip")
fig.show()


Дополнительные возможности функции:
🗣 Настройка цвета и диапазона шкалы плотности для точной визуализации.
🗣 Отображение подписей данных прямо на тепловой карте.
🗣 Применение функций marginal_х() и facet_col(), как для обычных графиков.

❗️Посмотрите готовый пример использования в собранном блокноте с комментариями, скачайте и используйте в дальнейшем!
🔗 Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
🎙Визуализация данных: Как изящно выделить важный период на графике в Plotly? Используем add_vrect!

Часто при визуализации временных рядов или бизнес-метрик нужно подсветить конкретный отрезок времени или категорию данных. Например: период рисковых событий, сезонный спад, праздники или целевые рамки.

В Plotly есть простой и очень удобный метод добавления одномерных областей — add_vrect() (для вертикальных зон) и add_hrect() (для горизонтальных).

Простой пример на Python:
fig.add_vrect(
x0="2019-01-01", x1="2019-06-01",# значения
fillcolor="LightSalmon",# цвет заливки
opacity=0.3,# прозрачность
layer="below",# слой (под графиком)
line_width=0,# убираем рамку
annotation_text="Падение рынка",# текст аннотации
annotation_position="top left"# позиция текста
)
fig.show()


Несколько важных фишек и неочевидных трюков:
🗣 Умные оси: Если ваша ось имеет тип datetime, вы можете просто передавать даты в x0 и x1 в виде текста, Plotly сам всё поймет.
🗣 Аннотации из коробки: Параметр annotation_text позволяет сразу подписать выделенную зону. А еще есть вариант подписи label() с настраиваемым шрифтом.
🗣 Работа с категориями: Можно подсвечивать диапазоны и в категориальных осях. Есть вариант с указанием диапазона текстом, но для более точной настройки можно указывать диапазон области через порядковые номера категорий (т.е. 1,5 – 2,5; 1,0 – 2,2 и т.д.)

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab

#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Как визуализировать сложную связанную иерархию? Используем Treemap в Plotly!

Когда вам нужно показать структуру вложенных данных (например, бюджет компании по отделам, продажи по континентам и странам или портфель инвестиций), обычные Pie Chart или Bar Chart быстро становятся нечитаемыми.

Тут на помощь приходит treemap() — график, который отображает иерархию в виде вложенных прямоугольников, где площадь и цвет каждого прямоугольника пропорциональна указанным параметрам.
 
Простой пример на Python
fig = px.treemap(df,
    path=[px.Constant("Мир"), 'Регион', 'Страна'], # Задаем иерархию колонок таблицы
    values='Продажи', # Размер блоков
    title='Структура мировых продаж')
fig.show()


Как формировать многомерные визуализации из простой таблицы:
🗣 path: список колонок, которые формируют вашу иерархию. Порядок важен: от самого общего (корень) к самому частному (листья). Использование px.Constant("Название") помогает создать единый корневой блок для всего графика.
🗣 values: колонка со значениями. Она определяет, насколько большим будет прямоугольник.
🗣 color: позволяет раскрасить блоки по дополнительному параметру. Например, размер прямоугольника будет показывать объем выручки, а цвет — процент маржинальности (от красного к зеленому).

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab
 
#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🎙Визуализация данных: Делаем карты из табличных данных! Функция Choropleth для работы с геопространственными полигонами в Plotly!

Если у вас есть данные с региональной привязкой (продажи по областям, население стран, уровень выбросов) в Plotly их можно подвязать к карте стран мира или собственной контурной карте.

Хороплет — это вид карты раскрашиваемой в зависимости от числовых или категориальных значений атрибутов таблицы. Главное чтобы кодировка области карты совпадала с кодировкой региона в вашей таблице.
 
Простой пример на Python
fig = px.choropleth(df,
locations="iso_alpha",
geojson = your_map,
featureidkey="properties.id”,
color="lifeExp”
fig.show()

 
Главные параметры, которые нужно знать:
🗣 locations: сюда мы передаем названия или коды регионов из таблицы данных (например, стандарты ISO-3 для стран).
🗣 geojson: специальная пользовательская карта для отрисовки (можно без этой переменной чтобы пользоваться встроенной картой мира).
🗣 featureidkey: поле карты отвечающее за идентификацию региона, нужно для связки с locations.
🗣 color: целевая метрика из таблицы по которой будем классифицировать области.

❗️Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗Ссылка на блокнот Colab
 
#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📱 Altair — декларативная библиотека для статистической визуализации данных. Под капотом она использует мощь Vega и Vega-Lite, но предоставляет элегантный и лаконичный Python-интерфейс. Результат — сложные, интерактивные графики. Отличный инструмент для тех, кто хочет строить сложные аналитические диаграммы с минимальным количеством строк кода.

Основные возможности
💬 Декларативный подход: Вы просто указываете связи между колонками данных и визуальными осями, а не прописываете циклы для отрисовки.
💬 Встроенная интерактивность: Тултипы, зум, выделение (selection) и связь нескольких графиков между собой добавляются парой строк.
💬 Экспорт: Сохраняйте результат в интерактивный HTML, статический PNG/SVG или JSON.

Установка
pip install altair 


Пример использования
# Строим интерактивный бар-чарт
chart = alt.Chart(df).mark_bar(cornerRadius=4).encode(
    x=alt.X('прогресс:Q', title='Выполнение (%)'),
    y=alt.Y('проект:N', title='Название проекта'),
color='проект:N',
    tooltip=['проект', 'прогресс']
).interactive()
 
# Показываем результат (или сохраняем: chart.save('chart.html'))
chart.show()


Подробнее 🔗 Сайт проекта

#pmpython #библиотеки #python #altair
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🎙Визуализация данных: Диаграммы из эмодзи – наконец-то!

Клиповое мышление тормозит принятие решений? Начальство скучает глядя на сложные графики вашей презентации. Что если добавить в отчет немного фана и заменить скучные точки на эмодзи?

Библиотека Altair позволяет сделать это буквально за пару строк с помощью визуализации изотопов (умное название пиктограмм). Количество записей в вашей таблице будет классифицировано в эмодзи и отображено по порядку.
 
Простой пример на Python
fig = alt.Chart(source).mark_text(size=45, baseline='middle').encode(
    alt.X('x:O').axis(None),
    alt.Y('animal:O').axis(None),
    alt.Row('country:N').title(''),
    alt.Text('emoji:N')
).transform_calculate(
    emoji="{'cattle': '🐄', 'pigs': '🐖', 'sheep': '🐏'}[datum.animal]"
).transform_window(
    x='rank()',
    groupby=['country', 'animal']
)
 
fig.show()

 
Главные параметры, которые нужно знать:
🗣 mark_text: размер и выравнивание эмодзи.
🗣 transform_calculate: метод создания виртуальной колонки с мэппингом классов и эмодзи.
🗣 alt.Row / Column: можно дополнительно группировать признаки по колонкам и рядам.

❗️ Посмотрите готовый пример собранного блокнота с комментариями, скачайте и используйте в дальнейшем!
🔗 Ссылка на блокнот Colab
 
#pmpython #визуализация #python #plotly
Please open Telegram to view this post
VIEW IN TELEGRAM