Архив рубрики: Анализ данных

3D График

Как отобразить на графике 5 факторов, 5 переменых?

4 категории и одна сумма.

Для одной точки.

Можно построить 3D график.

Например вот такой график Plotly

(если график не видно здесь, то посмотрите на него на странице рубрики)

Этот график можно вращать по вертикали и горизонтали.

Приближать и удалять.

Можно сделать сброс до исходного вида.

Можно выключать из отображения категории товаров.

Можно сохранить кадр, который на экране – именно с таким поворотом и приближением.

При наведении курсора мышки на точку, выводится подробная информация.

Статья понравилась?

Двухэтажные название колонок

После комплексной группировки таблицы pandas Pynhon dataframe командой groupby напрмер применив такую строку

# сколько заказов у каждого покупателя
agg_func_count = {'order_id': ['count'],
                    'sum_product': [ 'sum']}
count_orders_customer = df.groupby('customer_id')['order_id', 'sum_product'].agg(agg_func_count).reset_index()

Получаем двухэтажное название колонок в итоговой таблице.

Ещё они называются иерархические индексы

Пример dataframe с двухэтажными колонками

Выглядит это очень красиво. Но при попытке обратиться к колонке по названию, возникает сложность.

Что же делать?

Трансформировать иерархические названия столбцов pandas

Вот непонятная, но эффективная строка для этого

count_orders_customer.columns = ['_'.join(col).rstrip('_') for col in count_orders_customer.columns.values]

И получим результат сглаживания

Не земетили подвох?
Статья понравилась?

Как прочесть csv файл с Яндекс Диска в pandas

Яндекс.Диск официально не предоставляет сервис прямого считывания файлов по прямой ссылке.

Публичная ссылка на файл открывается в окне браузера. И уже в этом окне есть ссылка для скачивания.

Но в задачах анализа данных бывает необходимо в тетрадке Юпитер.Ноутбука прямо считывать данные в переменную из облачного хранилища.

Самый популярный в РФ ресурс для хранения файлов сейчас – это Яндекс.Диск.

Вот пример кода на Python для чтения файла:

import pandas as pd 
import requests 
from urllib.parse import urlencode 
 
# используем api 
base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?' 
public_key = 'https://disk.yandex.ru/d/c_JZSSJSnqWYzA' 
 
# получаем url 
final_url = base_url + urlencode(dict(public_key=public_key)) 
response = requests.get(final_url) 
download_url = response.json()['href'] 
 
# загружаем файл в df 
download_response = requests.get(download_url) 
df = pd.read_csv(download_url, sep='\t') 

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

Ну это как для любого файла csv .

Статья понравилась?

Дашборды в новых условиях

Мой курс Анализ данных на платформе Яндекс.практикум добрался до финального проекта.

Ура!
В списке задач дипломной работы есть построение дашборда в программе tableau.

Что такое dashboard? В прямом переводе – это приборная панель. В современном мире это ещё и панель показателей.

Вот пример на tableau:

https://clck.ru/hH2bd

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

Какие есть альтернативы?

Гугл

https://datastudio.google.com/s/nwXIk03nfBU

Яндекс

https://datalens.yandex/tivsy1aesdgal

Самописный сайт на PlotLy

http://dashboards.eddydewrussia.ru/
Статья понравилась?

Как переименовать подписи осей к графику Python Plot

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

И тогда простые значения типа “женат”, “в разводе”, “холост”, превращаются в безликие “1”, “2”, “3”.

Для задач обучения моделей машинного интеллекта и последующего прогнозирования это – как раз то, что нужно.

Но вот после получение результатов, их надо представить заказчикам. А заказчики – это обычные люди. Им намного органичнее видеть значения в первоначальном, символьном, виде.

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

...
ax = plt.subplot(1,3,j)
ax.set_xticks([0, 1], labels=['остался', 'ушел'])
...
plt.show()
Статья понравилась?