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

Замена значений в пандах по словарю

Часто для целей анализа бывает необходимым заменить значения в ячейках таблицы DataFrame на другие. Например, на короткие их версии, Или вообще нумерованные.

В приводимом примере замена

  • Для программы важно понять над чем вам нужно поработать. Не переживайте, вам будут доступны все опции.

на

  • q1

и т д

Вот вариант кода замены с использованием циклов в pandas:

# переименуем названия вопросов внутри столбца question_title для удобства на  q1, q2, q3, q4, q5, q6 соответственно

for i in filtered_answers.index:
    if filtered_answers.loc[i,'question_title'] == 'Для программы важно понять над чем вам нужно поработать. Не переживайте, вам будут доступны все опции.':
        filtered_answers.loc[i,'question_title'] = 'q1'
    elif filtered_answers.loc[i,'question_title'] == 'В зависимости от опыта работы вам может понадобиться разный вид консультаций и помощи от команды сопровождения и трудоустройства. Для нас очень важен честный ответ и понимание вашего бэкграунда.':
        filtered_answers.loc[i,'question_title'] = 'q2'
    elif filtered_answers.loc[i,'question_title'] == 'Бывает, что во время обучения меняется его цель. Например, изначально вы не планировали менять работу, но влюбились в профессию. Может, произошли жизненные изменения или вам сложно определить цель. Чтобы мы поняли, как помочь, отметьте подходящее утверждение:':
        filtered_answers.loc[i,'question_title'] = 'q3'
    elif filtered_answers.loc[i,'question_title'] == 'Планируете ли вы записаться на Карьерный Трек?':
        filtered_answers.loc[i,'question_title'] = 'q4'
    elif filtered_answers.loc[i,'question_title'] == 'Тут вы можете оставить свой комментарий, если не нашли подходящего варианта ответа.':
        filtered_answers.loc[i,'question_title'] = 'q5'
    else:
        filtered_answers.loc[i,'question_title'] = 'q6'
Статья понравилась?

Что дальше?

Закончилось обучение в Практикуме.

Получен диплом.

Накопилась куча долгов)))

Во время учёбы плохо получалось работать. Времени не хватало.

Но!

Как сохранить квалификацию, пока буду выбирать, в какой команде продолжить карьеру аналитика данных?

Буду выполнять аналитику для друзей!

Высылайте запросы!

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

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 .

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