Я успешно промыл мозги своему коллеге-фанатику Excel о достоинствах Python. Она стала энергичной ученицей, увидев, как быстро и легко мои скрипты на Python давали желаемые результаты за полчаса вместо 2 мучительных недель очистки Excel. Python — это простой в освоении язык программирования высокого уровня, который распространяется бесплатно. Это также один из самых популярных и востребованных языков программирования для приложений по обработке и анализу данных. Хотя Excel невероятно мощный, есть некоторые вещи, которые он делает не так хорошо, например, объединение больших объемов данных. В этой статье я расскажу обо всем, что необходимо знать обычному аналитику, чтобы начать работу с Python.

Шаг 1. Установка Python

Я рекомендую загрузить бесплатный дистрибутив Anaconda, который поставляется с Python и некоторыми полезными библиотеками: https://www.anaconda.com/products/individual

(Необязательно. Для доступа к Python из командной строки) После установки вы можете добавить:

C:\Users\‹ваше-имя пользователя›\Anaconda3\Scripts; C:\Users\‹ваше-имя пользователя›\Anaconda3; C:\Users\‹ваше имя пользователя›\Anaconda3\Library\bin

на системный путь, выполнив поиск «Дополнительные параметры системы» на боковой панели запуска, выберите «Просмотреть дополнительные параметры системы». Во всплывающем окне выберите «Переменные среды…» на вкладке «Дополнительно». В новом всплывающем окне в пользовательской переменной (первое белое поле) нажмите «Путь», затем нажмите «Изменить…», добавьте 3 вышеуказанных пути к вашему пути.

Теперь вы можете ввести «где python» в командной строке, чтобы убедиться, что пути были добавлены правильно. Вы также можете быстро запустить python в командной строке, просто набрав «python».

Шаг 2. Установка библиотек

Python такой мощный, потому что он дает вам доступ к тысячам библиотек, написанных программистами со всего мира. Эти библиотеки позволяют вам делать такие вещи, как чтение баз данных, создание веб-страниц, а также чтение файлов Excel. Чтобы читать файлы Excel, нам нужно установить пакет «xlrd». Просто найдите приложение Anaconda prompt и запустите его. Теперь введите «conda install xlrd» и нажмите Enter при появлении запроса.

Шаг 2 Начните писать

Если вы установили Anaconda, она поставляется с редактором под названием Jupyter Notebook, который позволяет вам легко писать и отображать код Python и результаты. Просто найдите приложение Anaconda prompt и запустите его. Теперь введите «Jupyter Notebook» и нажмите Enter. Jupyter откроется в вашем браузере:

Не стесняйтесь переходить к предпочитаемой папке. Вы также можете открыть jupyter в выбранной вами папке, запустив: cd ‹путь к папке› в приглашении Anaconda перед запуском «Jupyter Notebook».

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

Нажмите New Notebook: Python 3, чтобы начать кодирование.

Шаг 3 Импорт библиотек

Мы будем широко использовать библиотеку Pandas. Итак, давайте продолжим и импортируем его. Введите: import pandas as pd
Это импортирует библиотеку pandas и позволяет нам обращаться к этой библиотеке, вызывая pd в остальной части скрипта. Pandas — это библиотека анализа данных, которая очень удобна для манипулирования таблицами данных, подобно тому, что мы могли бы делать в Excel. Эти таблицы называются кадрами данных в Pandas.

Шаг 4 Чтение данных Excel

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

data = pd.read_excel("C:\\Users\\yourusername\\path_to_data\\MOCK_DATA.xlsx")

Обратите внимание на использование двойной обратной косой черты (\\), это связано с тем, что «\» является escape-символом в коде, например, «\n» означает символ «Ввод», а «\t» означает символ «табуляции». Так что всегда двойная косая черта. Затем нажмите ctrl+enter, чтобы запустить этот блок кода. Чтобы увидеть данные, просто введите данные.

Вы увидите, что ваши данные появляются здесь.

Шаг 5. Как выполнить простые расчеты

Допустим, мы хотим рассчитать доход и добавить его в виде столбца в данные. Это очень легко сделать в Python:

Мы можем создать новый столбец, просто запустив

data['column name'] = whatever_we_want_to_be_in_column

Шаг 6 Группировка данных

Допустим, мы хотим знать, какой доход мы зарабатывали каждый день. Нам нужно будет суммировать все ДОХОДЫ в каждом DATA_DATE. Обычно это работа для сводных таблиц в Excel. В Python мы делаем:

data.groupby('DATA_DATE')['REVENUE'].sum()

Мы также можем заменить «DATA_DATE» несколькими столбцами, например:

Обратите внимание, что когда мы ссылаемся на несколько столбцов, нам нужно добавить квадратные скобки. Столбец дохода можно заменить другими именами столбцов, вы также можете изменить сумму на count, prod, cumprod (совокупный продукт), cumsum (совокупная сумма) и другие. Чтобы узнать больше, обратитесь к Документации Pandas.

Давайте сохраним наш результат дохода, записав его в переменную. Бегать:

revenue_result = data.groupby('DATA_DATE')['REVENUE'].sum()
revenue_result = revenue_result.reset_index()

Вторая строка снова преобразует результат дохода в таблицу фрейма данных, если мы ее не запустим, доход_результат по-прежнему ссылается на объект столбца. Это вызовет проблемы, когда мы попытаемся соединить его с другой таблицей.

Шаг 6. Объединение нескольких таблиц

Это огромное преимущество Python по сравнению с Excel. Хотя в Excel есть функция vlookup, это не совсем быстро и просто, особенно когда вы работаете со многими листами.

Предположим, что наш бакалейщик также записывает клиентов, которые приходят каждый день. Начнем с импорта данных клиента:

customer_data = pd.read_excel("C:\\Users\\username\\Downloads\\mock_customer_data.xlsx")

Теперь мы хотим подсчитывать количество посетителей каждый день и сопоставлять их с нашими данными о доходах, чтобы увидеть, есть ли тенденция.

Сначала посчитаем количество клиентов:

no_customers = customer_data.groupby('date_visited')['id'].count().reset_index()

Мы можем переименовать столбец «id» в более подходящее имя:

no_customers = no_customers.rename(columns={'id':'no_cust'})

Теперь, чтобы объединить таблицу no_customers с таблицей profit_result:

no_customers.merge(revenue_result, left_on='date_visited', right_on='DATA_DATE', how='inner')

Параметр left_on относится к тому столбцу в левой таблице (левая часть «.merge»: no_customers), который вы хотите объединить, а right_on относится к столбцу в правой таблице. Слияние объединит эти таблицы, если значения в левом столбце совпадают со значениями в правом столбце. параметр «как» управляет тем, как слияние обрабатывает значения, которые находятся только в левой таблице или только в правой таблице, «внутреннее» означает внутреннее соединение, которое удаляет все значения, которые не находятся как в левой, так и в правой таблице, 'left'/ «right» сохраняет все значения слева/справа, а «outer» сохраняет все значения, независимо от того, приходят ли они слева или справа.

Вот результат:

Шаг 7. Экспортируем результаты в Excel.

Сначала сохраните результат в переменную.

result = no_customers.merge(revenue_result, left_on='date_visited', right_on='DATA_DATE', how='inner')

Далее экспортируем:

result.to_excel('folder_path\\results.xlsx')

И мы закончили!

Вы также можете экспортировать в буфер обмена, запустив:

result.to_clipboard()

Затем вставьте это в Excel, что мой коллега любит делать, но это приведет к грязному коду, если ваши сценарии станут очень длинными. Я не рекомендую это.

В этой статье я рассказал, как начать работу с Python и Pandas, и как сделать 5 простых вещей:

  1. читать Эксель
  2. создать новый столбец и выполнять простые операции со столбцами
  3. группировать по столбцам
  4. объединить 2 таблицы
  5. экспортировать результаты в Excel

Это простые операции, но мы можем объединить многие из них для быстрого анализа больших наборов данных, с которыми Excel не справляется. Шаги, которые я рассмотрел, занимают менее 5 минут, чтобы написать и запустить на Python.

Я надеюсь, что это вдохновит вас начать изучение Python, эти полезные функции сэкономили нам много часов мучительных вычислений в Excel. Если вы хотите узнать больше об основах языка Python, в Интернете есть много бесплатных ресурсов, я думаю, что codecademy — это хорошее начало. Следите за моими будущими статьями, посвященными более сложным темам, таким как чтение из корпоративных баз данных и запуск регрессий с скользящим окном.