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

Как в питоне выгрузить двухъярусную таблицу

  • автор:

Как записать две csv-таблицы на разные листы через pandas в Python?

Нужно — это хорошо. Вот только вы хотите невозможного. Формат СSV не поддерживает многостраничные файлы. В этом легко убедиться самому. Создайте хlsх файл. Сделайте его многостраничным, а потом попробуйте его сохранить как сsv. Обнаружите, что вам предложат либо сохранять каждый лист в отдельный файл, либо использовать другой формат, который поддерживает многостраничность.

Так что если позарез нужна многостраничность — используйте to_excel() и формат хlsх. Если позарез нужен csv — то пишите в этом формате с помощью to_csv() но в разные файлы. А «скрестить бульдога с носорогом» не удастся.

Отслеживать
ответ дан 26 окт 2022 в 9:09
11.7k 2 2 золотых знака 10 10 серебряных знаков 16 16 бронзовых знаков

  • python
  • pandas
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Работа с Excel-файлами в Pandas — Python: Pandas

Для работы с табличными данными часто используют продукт Microsoft Excel. В таблицы Excel помещают как списки покупок, так и отчетности компаний. Благодаря распространенности данного формата разработчики создали инструменты для атоматизации обработки данных.

Pandas является средством работы с табличными данными и умеет работать с файлами формата Excel-таблиц: .xls и .xlsx. И каждый разработчик должен уметь работать с такими форматами наравне с текстовыми файлами и файлами формата json и html.

В этом уроке мы познакомимся с основными методами библиотеки Pandas для работы с табличными данными в формате Microsoft Excel: .xls и .xlsx. Мы научимся их читать и записывать. Также мы разберем работу с файлами, в которых есть несколько листов, а также форматированию данных при записи.

Обработка Excel файлов в Python

Среди форматов файлов Excel наиболее популярными являются:

  • .xls — использовался в версиях Microsoft Excel до 2007
  • .xlsx — используется во всех версиях после 2007

Для работы с обоими типами в Python есть ряд открытых библиотек:

В библиотеке Pandas не реализован свой функционал работы с Excel-файлами, но есть единый интерфейс для работы с каждой из указанных выше библиотек.

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

Чтение таблиц из Excel файлов

Чтобы читать файлы в Pandas, используется метод read_excel() . Ему на вход подается путь к читаемому файлу:

import pandas as pd df_orders = pd.read_excel('data_read/Shop_orders_one_week.xlsx') print(df_orders.head()) # => weekday shop_1 shop_2 shop_3 shop_4 # 0 mon 7 1 7 8 # 1 tue 4 2 4 5 # 2 wed 3 5 2 3 # 3 thu 8 12 8 7 # 4 fri 15 11 13 9 # 5 sat 21 18 17 21 # 6 sun 25 16 25 17 

В примере выше прочитан файл продаж четырех магазинов за неделю и размещен в объекте DataFrame . Pandas по умолчанию добавил столбец индексов — последовательность целых чисел от 0 до 6.

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

df_orders = pd.read_excel('data_read/Shop_orders_one_week.xlsx', index_col=0) print(df_orders.head()) # => shop_1 shop_2 shop_3 shop_4 # weekday # mon 7 1 7 8 # tue 4 2 4 5 # wed 3 5 2 3 # thu 8 12 8 7 # fri 15 11 13 9 # sat 21 18 17 21 # sun 25 16 25 17 

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

df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xlsx') print(df_orders.head()) # => Orders by shop Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 # 0 NaN NaN NaN NaN NaN # 1 weekday shop_1 shop_2 shop_3 shop_4 # 2 mon 7 1 7 8 # 3 tue 4 2 4 5 # 4 wed 3 5 2 3 

Для корректного прочтения необходимо пропустить некоторое количество строк при прочтении. Для этого нужно использовать параметр skiprows и указать количество пропускаемых строк:

df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xlsx', skiprows=2) print(df_orders.head()) # => weekday shop_1 shop_2 shop_3 shop_4 # 0 mon 7 1 7 8 # 1 tue 4 2 4 5 # 2 wed 3 5 2 3 # 3 thu 8 12 8 7 # 4 fri 15 11 13 9 

Итоговый вариант корректного чтения, где пропущены две строки и использован один столбец в качестве столбца индексов, выглядит следующим образом:

df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xls', skiprows=2, index_col=0) print(df_orders.head()) # => shop_1 shop_2 shop_3 shop_4 # weekday # mon 7 1 7 8 # tue 4 2 4 5 # wed 3 5 2 3 # thu 8 12 8 7 # fri 15 11 13 9 

Запись таблиц в Excel файл

Также в Excel-файл можно записывать результаты работы программы. Эту задачу можно разделить на два типа по сложности используемого синтаксиса:

  • Быстрая запись на один лист — записывается одна таблица, которая будет размещена на одном листе файла Excel
  • Создание файла с несколькими листами — если результаты работы программы располагаются в нескольких итоговых таблицах, то для формирования единого файла Excel с несколькими листами потребуется применить определенные правила создания

Быстрая запись на один лист

В качестве результатов работы программы используем среднее по магазинам за неделю:

df_orders_mean = pd.DataFrame(df_orders.mean()).T.round(1) df_orders_mean.index = ['mean'] print(df_orders_mean) # => shop_1 shop_2 shop_3 shop_4 # mean 11.9 9.3 10.9 10.0 

Сформируем итоговую таблицу на основе исходной и добавим аналитические результаты:

df_analitic_results = pd.concat([ df_orders, df_orders_mean ]) print(df_analitic_results) # => shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8.0 # tue 4.0 2.0 4.0 5.0 # wed 3.0 5.0 2.0 3.0 # thu 8.0 12.0 8.0 7.0 # fri 15.0 11.0 13.0 9.0 # sat 21.0 18.0 17.0 21.0 # sun 25.0 16.0 25.0 17.0 # mean 11.9 9.3 10.9 10.0 

Чтобы быстро записать данную таблицу, достаточно воспользоваться методом to_excel() . Формат файла .xls или .xlsx необходимо указать в расширении файла. Pandas автоматически определит, какой библиотекой воспользоваться для конкретного формата:

df_analitic_results.to_excel('data_read/Shop_orders_one_week_analitics.xlsx') df_analitic_results.to_excel('data_read/Shop_orders_one_week_analitics.xls') 

Создание файла с несколькими листами

Чтобы задать имя листа, на котором располагается таблица, необходимо указать его в параметре sheet_name . В данном примере получится лист Total:

path_for_analitic_results = 'data_read/Shop_orders_one_week_analitics.xlsx' df_analitic_results.to_excel( path_for_analitic_results, sheet_name='Total' ) 

Попробуем добавить к сформированному файлу лист итогов только для первого магазина:

df_analitic_results[['shop_1']].to_excel( path_for_analitic_results, sheet_name='shop_1', ) 

Все выполнено без ошибок, но в итоговом файле листа Total нет. Чтобы перезаписать файл и удалить предыдущий, вызовем функцию to_excel() .

Для корректной записи или дозаписи нужно использовать следующую конструкцию. В одном файле запишем итоговую таблицу на один лист, а для каждого магазина создадим отдельный лист только с его итогами:

with pd.ExcelWriter( path_for_analitic_results, engine="xlsxwriter", mode='w') as excel_writer: # Add total df df_analitic_results.to_excel(excel_writer, sheet_name='Total') # Add all shop df results for shop_name in df_analitic_results.columns.to_list(): df_analitic_results[[shop_name]].to_excel(excel_writer, sheet_name=shop_name) 

В коде выше создается экземпляр класса ExcelWriter на «движке» библиотеки xlsxwriter . Далее мы используем инициализированный экземпляр excel_writer в качестве первого параметра метода to_excel() . Конструкция with. as. позволяет безопасно работать с потоком данных и закрыть файл, даже когда возникают ошибки записи.

Чтение таблиц из Excel файлов с несколькими листами

Чтобы прочитать файл с несколькими листами, не хватит метода read_excel() , поскольку будет прочитан только первый лист из файла:

df_analitic_results_from_file = pd.read_excel(path_for_analitic_results, index_col=0) print(df_analitic_results_from_file) # => shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8 # tue 4.0 2.0 4.0 5 # wed 3.0 5.0 2.0 3 # thu 8.0 12.0 8.0 7 # fri 15.0 11.0 13.0 9 # sat 21.0 18.0 17.0 21 # sun 25.0 16.0 25.0 17 # mean 11.9 9.3 10.9 10 

При этом можно прочитать конкретный лист, если указать его название в параметре sheet_name :

df_analitic_results_from_file = pd.read_excel(path_for_analitic_results, index_col=0, sheet_name='shop_1') print(df_analitic_results_from_file) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9 

Чтобы прочитать несколько листов и не переоткрывать файл, достаточно использовать экземпляр класса ExcelFile и его метод parse() . В последнем указывается имя нужного листа и дополнительные параметры чтения, аналогичные методу read_excel() .

excel_reader = pd.ExcelFile(path_for_analitic_results) df_shop_1 = excel_reader.parse('shop_1', index_col=0) df_shop_2 = excel_reader.parse('shop_2', index_col=0) print(df_shop_1) print(df_shop_2) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9 # shop_2 # mon 1.0 # tue 2.0 # wed 5.0 # thu 12.0 # fri 11.0 # sat 18.0 # sun 16.0 # mean 9.3 

Данный подход для чтения файла Excel удобен, чтобы получить список всех листов. Для этого нужно посмотреть на атрибут sheet_names :

print(excel_reader.sheet_names) # => ['Total', 'shop_1', 'shop_2', 'shop_3', 'shop_4'] 

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

sheet_to_df_map = <> for sheet_name in excel_reader.sheet_names: sheet_to_df_map[sheet_name] = excel_reader.parse(sheet_name, index_col=0) print(sheet_to_df_map['shop_1']) print(sheet_to_df_map['Total']) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9 # shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8 # tue 4.0 2.0 4.0 5 # wed 3.0 5.0 2.0 3 # thu 8.0 12.0 8.0 7 # fri 15.0 11.0 13.0 9 # sat 21.0 18.0 17.0 21 # sun 25.0 16.0 25.0 17 # mean 11.9 9.3 10.9 10 

Форматирование таблиц

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

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

with pd.ExcelWriter( path_for_analitic_results, engine="xlsxwriter", mode='w') as excel_writer: # Add total df df_analitic_results.to_excel(excel_writer, sheet_name='Total') # Formatting total df threshold = 11 workbook = excel_writer.book worksheet = excel_writer.sheets['Total'] format1 = workbook.add_format('bg_color': '#FFC7CD', 'font_color': '#9C0006'>) format2 = workbook.add_format('bg_color': '#C6EFCD', 'font_color': '#006100'>) worksheet.conditional_format('B2:E9',  'type' : 'cell', 'criteria' : '>=', 'value' : threshold, 'format' : format1> ) worksheet.conditional_format('B2:E9',  'type' : 'cell', 'criteria' : ', 'value' : threshold, 'format' : format2> ) 

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

Выводы

Открыть доступ

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

Чтение и запись файлов Excel (XLSX) в Python

Pandas можно использовать для чтения и записи файлов Excel с помощью Python. Это работает по аналогии с другими форматами. В этом материале рассмотрим, как это делается с помощью DataFrame.

Помимо чтения и записи рассмотрим, как записывать несколько DataFrame в Excel-файл, как считывать определенные строки и колонки из таблицы и как задавать имена для одной или нескольких таблиц в файле.

Установка Pandas

Для начала Pandas нужно установить. Проще всего это сделать с помощью pip .

Если у вас Windows, Linux или macOS:

pip install pandas # или pip3

В процессе можно столкнуться с ошибками ModuleNotFoundError или ImportError при попытке запустить этот код. Например:

ModuleNotFoundError: No module named 'openpyxl'

В таком случае нужно установить недостающие модули:

pip install openpyxl xlsxwriter xlrd # или pip3

Запись в файл Excel с python

Будем хранить информацию, которую нужно записать в файл Excel, в DataFrame . А с помощью встроенной функции to_excel() ее можно будет записать в Excel.

Сначала импортируем модуль pandas . Потом используем словарь для заполнения DataFrame :

 
import pandas as pd

df = pd.DataFrame( 'FC Bayern München', 'FC Barcelona', 'Juventus'],
'League': ['English Premier League (1)', 'Spain Primera Division (1)',
'English Premier League (1)', 'German 1. Bundesliga (1)',
'Spain Primera Division (1)', 'Italian Serie A (1)'],
'TransferBudget': [176000000, 188500000, 90000000,
100000000, 180500000, 105000000]>)

Ключи в словаре — это названия колонок. А значения станут строками с информацией.

Теперь можно использовать функцию to_excel() для записи содержимого в файл. Единственный аргумент — это путь к файлу:

 
df.to_excel('./teams.xlsx')

А вот и созданный файл Excel:

файл Excel в python

Стоит обратить внимание на то, что в этом примере не использовались параметры. Таким образом название листа в файле останется по умолчанию — «Sheet1». В файле может быть и дополнительная колонка с числами. Эти числа представляют собой индексы, которые взяты напрямую из DataFrame.

Поменять название листа можно, добавив параметр sheet_name в вызов to_excel() :

 
df.to_excel('./teams.xlsx', sheet_name='Budgets', index=False)

Также можно добавили параметр index со значением False , чтобы избавиться от колонки с индексами. Теперь файл Excel будет выглядеть следующим образом:

Чтение и запись файлов Excel (XLSX) в Python

Запись нескольких DataFrame в файл Excel

Также есть возможность записать несколько DataFrame в файл Excel. Для этого можно указать отдельный лист для каждого объекта:

 
salaries1 = pd.DataFrame( 'Salary': [560000, 220000, 125000]>)

salaries2 = pd.DataFrame( 'Salary': [370000, 270000, 240000]>)

salaries3 = pd.DataFrame( 'Salary': [160000, 260000, 250000]>)

salary_sheets =
writer = pd.ExcelWriter('./salaries.xlsx', engine='xlsxwriter')

for sheet_name in salary_sheets.keys():
salary_sheets[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)

writer.save()

Здесь создаются 3 разных DataFrame с разными названиями, которые включают имена сотрудников, а также размер их зарплаты. Каждый объект заполняется соответствующим словарем.

Объединим все три в переменной salary_sheets , где каждый ключ будет названием листа, а значение — объектом DataFrame .

Дальше используем движок xlsxwriter для создания объекта writer . Он и передается функции to_excel() .

Перед записью пройдемся по ключам salary_sheets и для каждого ключа запишем содержимое в лист с соответствующим именем. Вот сгенерированный файл:

Чтение и запись файлов Excel (XLSX) в Python

Можно увидеть, что в этом файле Excel есть три листа: Group1, Group2 и Group3. Каждый из этих листов содержит имена сотрудников и их зарплаты в соответствии с данными в трех DataFrame из кода.

Параметр движка в функции to_excel() используется для определения модуля, который задействуется библиотекой Pandas для создания файла Excel. В этом случае использовался xslswriter , который нужен для работы с классом ExcelWriter . Разные движка можно определять в соответствии с их функциями.

В зависимости от установленных в системе модулей Python другими параметрами для движка могут быть openpyxl (для xlsx или xlsm) и xlwt (для xls). Подробности о модуле xlswriter можно найти в официальной документации.

Наконец, в коде была строка writer.save() , которая нужна для сохранения файла на диске.

Чтение файлов Excel с python

По аналогии с записью объектов DataFrame в файл Excel, эти файлы можно и читать, сохраняя данные в объект DataFrame . Для этого достаточно воспользоваться функцией read_excel() :

Использование Python и Excel для обработки и анализа данных. Часть 1: импорт данных и настройка среды

Если Вы только начинаете свой путь знакомства с возможностями Python, ваши познания еще имеют начальный уровень — этот материал для Вас. В статье мы опишем, как можно извлекать информацию из данных, представленных в Excel файлах, работать с ними используя базовый функционал библиотек. В первой части статьи мы расскажем про установку необходимых библиотек и настройку среды. Во второй части — предоставим обзор библиотек, которые могут быть использованы для загрузки и записи таблиц в файлы с помощью Python и расскажем как работать с такими библиотеками как pandas, openpyxl, xlrd, xlutils, pyexcel.

В какой-то момент вы неизбежно столкнетесь с необходимостью работы с данными Excel, и нет гарантии, что работа с таким форматами хранения данных доставит вам удовольствие. Поэтому разработчики Python реализовали удобный способ читать, редактировать и производить иные манипуляции не только с файлами Excel, но и с файлами других типов.

Отправная точка — наличие данных

Когда вы начинаете проект по анализу данных, вы часто сталкиваетесь со статистикой собранной, возможно, при помощи счетчиков, возможно, при помощи выгрузок данных из систем типа Kaggle, Quandl и т. д. Но большая часть данных все-таки находится в Google или репозиториях, которыми поделились другие пользователи. Эти данные могут быть в формате Excel или в файле с .csv расширением.

Данные есть, данных много. Анализируй — не хочу. С чего начать? Первый шаг в анализе данных — их верификация. Иными словами — необходимо убедиться в качестве входящих данных.
В случае, если данные хранятся в таблице, необходимо не только подтвердить качество данных (нужно быть уверенным, что данные таблицы ответят на поставленный для исследования вопрос), но и оценить, можно ли доверять этим данным.

Проверка качества таблицы

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

  • данные являются статистикой;
  • различные типы данных: время, вычисления, результат;
  • данные полные и консистентные: структура данных в таблице — систематическая, а присутствующие формулы — работающие.

Бест-практикс табличных данных

Читать данные таблицы при помощи Python — это хорошо. Но данные хочется еще и редактировать. Причем редактирование данных в таблице, должно соответствовать следующим условиям:

  • первая строка таблицы зарезервирована для заголовка, а первый столбец используется для идентификации единицы выборки;
  • избегайте имен, значений или полей с пробелами. В противном случае, каждое слово будет интерпретироваться как отдельная переменная, что приведет к ошибкам, связанным с количеством элементов в строке в наборе данных. Лучше использовать подчеркивания, регистр (первая буква каждого раздела текста — заглавная) или соединительные слова;
  • отдавайте предпочтение коротким названиям;
  • старайтесь избегать использования названий, которые содержат символы ?, $,%, ^, &, *, (,),-,#, . , /, |, \, [ ,] ,;
  • удаляйте любые комментарии, которые вы сделали в файле, чтобы избежать дополнительных столбцов или полей со значением NA;
  • убедитесь, что любые недостающие значения в наборе данных отображаются как NA.

Если вы работаете с Microsoft Excel, вы наверняка знаете, что есть большое количество вариантов сохранения файла помимо используемых по умолчанию расширения: .xls или .xlsx (переходим на вкладку “файл”, “сохранить как” и выбираем другое расширение (наиболее часто используемые расширения для сохранения данных с целью анализа — .CSV и.ТХТ)). В зависимости от варианта сохранения поля данных будут разделены знаками табуляции или запятыми, которые составляют поле “разделитель”. Итак, данные проверены и сохранены. Начинаем готовить рабочее пространство.

Подготовка рабочего пространства

Подготовка рабочего пространства — одна из первых вещей, которую надо сделать, чтобы быть уверенным в качественном результате анализа.

Первый шаг — проверка рабочей директории.

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

Для проверки дайте следующие команды:

# Import `os` import os # Retrieve current working directory (`cwd`) cwd = os.getcwd() cwd # Change directory os.chdir("/path/to/your/folder") # List all files and directories in current directory os.listdir('.')

Эти команды важны не только для загрузки данных, но и для дальнейшего анализа. Итак, вы прошли все проверки, вы сохранили данные и подготовили рабочее пространство. Уже можно начать чтение данных в Python? 🙂 К сожалению пока нет. Нужно сделать еще одну последнюю вещь.

Установка пакетов для чтения и записи Excel файлов

Несмотря на то, что вы еще не знаете, какие библиотеки будут нужны для импорта данных, нужно убедиться, что у все готово для установки этих библиотек. Если у вас установлен Python 2> = 2.7.9 или Python 3> = 3.4, нет повода для беспокойства — обычно, в этих версиях уже все подготовлено. Поэтому просто убедитесь, что вы обновились до последней версии 🙂

Для этого запустите в своем компьютере следующую команду:

# For Linux/OS X pip install -U pip setuptools # For Windows python -m pip install -U pip setuptools

В случае, если вы еще не установили pip, запустите скрипт python get-pip.py, который вы можете найти здесь (там же есть инструкции по установке и help).

Установка Anaconda

Установка дистрибутива Anaconda Python — альтернативный вариант, если вы используете Python для анализа данных. Это простой и быстрый способ начать работу с анализом данных — ведь отдельно устанавливать пакеты, необходимые для data science не придется.

Это особенно удобно для новичков, однако даже опытные разработчики часто идут этим путем, ведь Anakonda — удобный способ быстро протестировать некоторые вещи без необходимости устанавливать каждый пакет отдельно.

Anaconda включает в себя 100 наиболее популярных библиотек Python, R и Scala для анализа данных в нескольких средах разработки с открытым исходным кодом, таких как Jupyter и Spyder. Если вы хотите начать работу с Jupyter Notebook, то вам сюда.

Чтобы установить Anaconda — вам сюда.

Загрузка файлов Excel как Pandas DataFrame

Ну что ж, мы сделали все, чтобы настроить среду! Теперь самое время начать импорт файлов.

Один из способов, которым вы будете часто пользоваться для импорта файлов с целью анализа данных — импорт с помощью библиотеки Pandas (Pandas — программная библиотека на языке Python для обработки и анализа данных). Работа Pandas с данными происходит поверх библиотеки NumPy, являющейся инструментом более низкого уровня. Pandas — мощная и гибкая библиотека и она очень часто используется для структуризации данных в целях облегчения анализа.

Если у вас уже есть Pandas в Anaconda, вы можете просто загрузить файлы в Pandas DataFrames с помощью pd.Excelfile ():

# Import pandas import pandas as pd # Assign spreadsheet filename to `file` file = 'example.xlsx' # Load spreadsheet xl = pd.ExcelFile(file) # Print the sheet names print(xl.sheet_names) # Load a sheet into a DataFrame by name: df1 df1 = xl.parse('Sheet1')

Если вы не установили Anaconda, просто запустите pip install pandas, чтобы установить пакет Pandas в вашей среде, а затем выполните команды, приведенные выше.

Для чтения .csv-файлов есть аналогичная функция загрузки данных в DataFrame: read_csv (). Вот пример того, как вы можете использовать эту функцию:

# Import pandas import pandas as pd # Load csv df = pd.read_csv("example.csv") 

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

Как записывать Pandas DataFrame в Excel файл

Предположим, после анализа данных вы хотите записать данные в новый файл. Существует способ записать данные Pandas DataFrames (с помощью функции to_excel ). Но, прежде чем использовать эту функцию, убедитесь, что у вас установлен XlsxWriter, если вы хотите записать свои данные на несколько листов в файле .xlsx:

# Install `XlsxWriter` pip install XlsxWriter # Specify a writer writer = pd.ExcelWriter('example.xlsx', engine='xlsxwriter') # Write your DataFrame to a file yourData.to_excel(writer, 'Sheet1') # Save the result writer.save() 

Обратите внимание, что в фрагменте кода используется объект ExcelWriter для вывода DataFrame. Иными словами, вы передаете переменную writer в функцию to_excel (), и указываете имя листа. Таким образом, вы добавляете лист с данными в существующую книгу. Также можно использовать ExcelWriter для сохранения нескольких разных DataFrames в одной книге.

То есть если вы просто хотите сохранить один файл DataFrame в файл, вы можете обойтись без установки библиотеки XlsxWriter. Просто не указываете аргумент, который передается функции pd.ExcelWriter (), остальные шаги остаются неизменными.

Подобно функциям, которые используются для чтения в .csv-файлах, есть также функция to_csv () для записи результатов обратно в файл с разделителями-запятыми. Он работает так же, как когда мы использовали ее для чтения в файле:

# Write the DataFrame to csv df.to_csv("example.csv")

Если вы хотите иметь отдельный файл с вкладкой, вы можете передать a \ t аргументу sep. Обратите внимание, что существуют различные другие функции, которые можно использовать для вывода файлов. Их можно найти здесь.

Использование виртуальной среды

Общий совет по установке библиотек — делать установку в виртуальной среде Python без системных библиотек. Вы можете использовать virtualenv для создания изолированных сред Python: он создает папку, содержащую все необходимое для использования библиотек, которые потребуются для Python.

Чтобы начать работу с virtualenv, сначала нужно его установить. Потом перейти в директорию, где будет находится проект. Создать virtualenv в этой папке и загрузить, если нужно, в определенную версию Python. После этого активируете виртуальную среду. Теперь можно начинать загрузку других библиотек и начинать работать с ними.

Не забудьте отключить среду, когда вы закончите!

# Install virtualenv $ pip install virtualenv # Go to the folder of your project $ cd my_folder # Create a virtual environment `venv` $ virtualenv venv # Indicate the Python interpreter to use for `venv` $ virtualenv -p /usr/bin/python2.7 venv # Activate `venv` $ source venv/bin/activate # Deactivate `venv` $ deactivate 

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

Но что делать, если у вас несколько проектов, работающих одновременно, и вы не хотите, чтобы они использовали одну и ту же установку Python? Или если у ваших проектов есть противоречивые требования. В таких случаях виртуальная среда — идеальное решение.

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

  • Блог компании OTUS
  • Веб-разработка
  • Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *