Добрый день. Прочитав эту статью Вы узнаете, как можно выгружать данные из Excel в Python, их обрабатывать в нем и сохранять назад в Excel файлы.
Перед тем как начнем, хотелось бы сказать пару слов о том, зачем нам понадобился Python. Этот язык программирования очень неплохо оптимизирован для работы с большими массивами данных, что позволяет нам ускорить обработку больших Excel таблиц в десятки раз, а также применять имеющиеся в Python пакеты для углубленного анализа данных, что Excel делать не умеет.
Итак, начнем по этапам:
Для того, что бы установить Anaconda, заходим на официальный сайт в раздел Download и скачиваем инсталлятор для Вашей операционной системы.
Настоятельно рекомендую брать дистрибутив с версией Python 3.*, так как Python 2.* морально устарел и все реже используется в новых продуктах. Ссылка на Anaconda здесь.
После того, как Вы скачали инсталлятор, запускаете и устанавливаете его. Процесс очень простой, подробно останавливаться на нем не буду. После того как Вы установили Anaconda, в меню должен появиться соответствующий раздел. Давайте проверим, что Python установлен и работает. Для этого запускаем Anaconda Prompt из соответствующего меню.
Прописываем команду python . Если у Вас все получилось, то должна отобразиться версия установленного у вас интерпритатора Python, наподобие сообщения ниже.
Поздравляю, Python Вы установили, можно двигаться дальше.
Jupyter Notebook - это интерактивная среда разработки, которая позволяет выполнять код программы построчно и тем самым наблюдать за тем, что делает программа и какие выдает результаты.
Spyder - эта IDE, которая обладает необходимым функционалом, который помогает при написании кода, таким как подсветка синтаксиса, автозаполнения кода и т.п. Так же позволяет просматривать содержимое переменных после выполнения программы, что очень удобно при отладке и вылавливании багов.
Мне больше понравился Spyder и дальше примеры будут с его использованием, но выбор IDE - это личное дело каждого пользователя и настаивать на своем выборе я не буду.
Pandas - это дополнительный пакет к Python, который позволяет работать с данными, как с двумерными таблицами (Excel - это как раз и есть такая таблица).
Xlwings - также дополнительный пакет к Python, который отвечает за получение/сохранение данных из Excel файлов. Отличительными особенностями данного пакета является возможность не только редактировать данные в Excel, но также стиль оформления ячеек, создавать дополнительные листы и т.п. Супер-фишкой является возможность запускать Python скрипты прямо из Excel файлов, но об этой особенности поговорим в других уроках.
Итак, что бы импортировать Pandas и Xlwings, проделаем следующие операции: 1. Запустить Spyder. 2. Удаляем в появившемся окне кода, все что туда программа написала по умолчанию, так как это нам не нужно. 3. Вставляем слудеющий код:
Сохраняем скрипт в удобное Вам место и запускаем, если все сделали правильно в консоли будет выведены версии пакетов. В моем случае это 0.15.10, 0.25.1.
Все получилось, отлично, едем дальше. Если нет - задавайте вопросы к комментариях под статьей, буду стараться оперативно отвечать.
Для того, что бы прочитать эти данные, давайте внесем в скрипт изменения. Теперь наш скрипт будет выглядеть следующим образом:
wb = xw.Book('Excel_Python-1.xlsx') - Открываем Excel файл с именем Excel_Python-1.xlsx и присваиваем его переменной wb.
data_excel = wb.sheets['Данные'] - Получаем доступ к листу Данные из файла, записанного в переменную wb и присваиваем его переменной data_excel.
data_pd = data_excel.range('A1:C4').options(pd.DataFrame, header = 1, index = False).value - Читаем данные с области листа A1:C4 и создаем переменную типа Pandas DataFrame (pd.DataFrame), при этом говорим что первая строка таблицы содержит заголовки (header = 1), а номеров по порядку или так называемых индексов у строк нет (index = False).
print(data_pd) - Выводим в консоль Python содержимого созданого нами DataFrame с именем data_pd.
Перед тем как начнем, хотелось бы сказать пару слов о том, зачем нам понадобился Python. Этот язык программирования очень неплохо оптимизирован для работы с большими массивами данных, что позволяет нам ускорить обработку больших Excel таблиц в десятки раз, а также применять имеющиеся в Python пакеты для углубленного анализа данных, что Excel делать не умеет.
Итак, начнем по этапам:
1. Устанавливаем Python.
Для этого нам понадобится замечательный продукт Anaconda, который включает в себя как сам Python, так и необходимы нам для работы пакеты, такие как Pandas, Xlwings, NumPy и другие.Для того, что бы установить Anaconda, заходим на официальный сайт в раздел Download и скачиваем инсталлятор для Вашей операционной системы.
Настоятельно рекомендую брать дистрибутив с версией Python 3.*, так как Python 2.* морально устарел и все реже используется в новых продуктах. Ссылка на Anaconda здесь.
После того, как Вы скачали инсталлятор, запускаете и устанавливаете его. Процесс очень простой, подробно останавливаться на нем не буду. После того как Вы установили Anaconda, в меню должен появиться соответствующий раздел. Давайте проверим, что Python установлен и работает. Для этого запускаем Anaconda Prompt из соответствующего меню.
Прописываем команду python . Если у Вас все получилось, то должна отобразиться версия установленного у вас интерпритатора Python, наподобие сообщения ниже.
Поздравляю, Python Вы установили, можно двигаться дальше.
2. Выбираем IDE для написания кода.
IDE - это интерактивная среда для написания кода. Код можно писать хоть в блокноте, хоть в командной строке интерпритатора, но это очень неудобно. Поэтому все используют IDE. Для Python их создано множество, но я остановлюсь на двух из них, а именно Jupyter Notebook и Spider, так как они идут в комплекте поставки Anaconda.Jupyter Notebook - это интерактивная среда разработки, которая позволяет выполнять код программы построчно и тем самым наблюдать за тем, что делает программа и какие выдает результаты.
Spyder - эта IDE, которая обладает необходимым функционалом, который помогает при написании кода, таким как подсветка синтаксиса, автозаполнения кода и т.п. Так же позволяет просматривать содержимое переменных после выполнения программы, что очень удобно при отладке и вылавливании багов.
Мне больше понравился Spyder и дальше примеры будут с его использованием, но выбор IDE - это личное дело каждого пользователя и настаивать на своем выборе я не буду.
3. Импорт необходимых пакетов Python.
Для экспорта данных из Excel в Python и их дальнейшей обработки, нам понадобятся два пакета: Pandas и Xlwings. Они оба уже включены в состав Anaconda, поэтому никаких дополнительных действий по их установки от Вас не потребуется.Pandas - это дополнительный пакет к Python, который позволяет работать с данными, как с двумерными таблицами (Excel - это как раз и есть такая таблица).
Xlwings - также дополнительный пакет к Python, который отвечает за получение/сохранение данных из Excel файлов. Отличительными особенностями данного пакета является возможность не только редактировать данные в Excel, но также стиль оформления ячеек, создавать дополнительные листы и т.п. Супер-фишкой является возможность запускать Python скрипты прямо из Excel файлов, но об этой особенности поговорим в других уроках.
Итак, что бы импортировать Pandas и Xlwings, проделаем следующие операции: 1. Запустить Spyder. 2. Удаляем в появившемся окне кода, все что туда программа написала по умолчанию, так как это нам не нужно. 3. Вставляем слудеющий код:
import xlwings as xwОбъясню, что делает этот фрагмент кода. Первые две строки, которые начинаются со слова import, импортируют нужные нам пакеты, вторые две строки выводят их текущие версии в консоль Python. Это нужно, что бы проверить что все корректно работает.
import pandas as pd
print (xw.__version__)
print (pd.__version__)
Сохраняем скрипт в удобное Вам место и запускаем, если все сделали правильно в консоли будет выведены версии пакетов. В моем случае это 0.15.10, 0.25.1.
Все получилось, отлично, едем дальше. Если нет - задавайте вопросы к комментариях под статьей, буду стараться оперативно отвечать.
4. Чтение данных из Excel файла Python.
Мы добрались до самой важной части, а именно как прочитать данные из Excel файла. Для примера я создал файл с названием Excel_Python-1.xlsx и поместил в туже папку, куда сохранил скрипт из шага 3. В этом файле создал лист "Данные" и туда внес следующую информацию:Для того, что бы прочитать эти данные, давайте внесем в скрипт изменения. Теперь наш скрипт будет выглядеть следующим образом:
import xlwings as xwЗапускаем скрипт, если все сделали правильно, то в консоли Python Вы увидите содержание Excel файла. Ура!!! Данные прочитаны. Теперь давайте остановимся подробнее на каждой из новых строк скрипта.
import pandas as pd
wb = xw.Book('Excel_Python-1.xlsx') # Открываем книгу
data_excel = wb.sheets['Данные'] # Читаем лист Данные
data_pd = data_excel.range('A1:C4').options(pd.DataFrame, header = 1, index = False).value # Создаем DataFrame
print(data_pd)
wb = xw.Book('Excel_Python-1.xlsx') - Открываем Excel файл с именем Excel_Python-1.xlsx и присваиваем его переменной wb.
data_excel = wb.sheets['Данные'] - Получаем доступ к листу Данные из файла, записанного в переменную wb и присваиваем его переменной data_excel.
data_pd = data_excel.range('A1:C4').options(pd.DataFrame, header = 1, index = False).value - Читаем данные с области листа A1:C4 и создаем переменную типа Pandas DataFrame (pd.DataFrame), при этом говорим что первая строка таблицы содержит заголовки (header = 1), а номеров по порядку или так называемых индексов у строк нет (index = False).
print(data_pd) - Выводим в консоль Python содержимого созданого нами DataFrame с именем data_pd.
5. Сохранение данных из Python в Excel.
Великолепно! Данные мы прочитали, теперь давайте их немного отредактируем и сохраним назад в Excel файл.
Сначало добавим в наш DataFrame data_pd еще один столбец Пол. Это можно сделать при помощи следующей команды:
data_pd['Пол'] = ['Мужской','Мужской','Мужской']
Отлично, а теперь давайте запишем эти модифицированные данные назад в наш Excel файл:
data_excel.range('A1').options(index = False).value = data_pd
Размерем эту команду чуть подробнее. Мы говорим что в лист data_excel, который мы создали ранее, с ячейки A1 надо внести данные из нашего DataFrame data_pd, при этом индексы строк записывать не надо (index = False). Полностью код выглядит следующим образом:
import xlwings as xw
import pandas as pd
wb=xw.Book('Excel_Python-1.xlsx') # Открываем книгу
data_excel = wb.sheets['Данные'] # Читаем лист Данные
data_pd = data_excel.range('A1:C4').options(pd.DataFrame, header = 1, index = False).value # Создаем DataFrame
data_pd['Пол'] = ['Мужской','Мужской','Мужской']
data_excel.range('A1').options(index = False).value = data_pd
Запустите скрипт и посмотрите Ваш Excel файл, в нем Вы увидете, что появился новый заполненный данными столбец "Пол".
На этом этот урок я заканчиваю, в следующих уроках продолжим далее изучать Python и как его можно применять при обработке Excel файлов.
0 comments:
Отправить комментарий
Спасибо за комментарий.