Как открыть CSV-файл в блокноте Jupiter

Обновлено: 21.11.2024

В этом разделе рассказывается, как добавлять данные в JupyterHub из Интернета или со своего компьютера. Чтобы узнать, как поделиться данными, которые уже есть в вашем JupyterHub, см. статью Предоставление доступа к данным вашим пользователям .

Когда вы добавляете данные с помощью методов на этой странице, вы добавляете их только в свой пользовательский каталог. Это не то место, которое доступно для других. Информацию о том, как поделиться этими данными с пользователями JupyterHub, см. в разделе Предоставление доступа к данным своим пользователям .

Добавление данных с вашего локального компьютера¶

Самый простой способ добавить данные в JupyterHub — использовать пользовательский интерфейс «Загрузить». Для этого выполните следующие действия:

Сначала перейдите на главную страницу интерфейса Jupyter Notebook. Вы можете сделать это, перейдя по URL-адресу /user/ /tree .

Нажмите кнопку "Загрузить", чтобы открыть окно выбора файла.

Выберите файл, который хотите загрузить. При желании вы можете выбрать несколько файлов.

Нажмите «Загрузить» для каждого файла, который вы хотите загрузить.

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

Чтобы узнать, как поделиться этими данными с новыми пользователями в JupyterHub, см. раздел Делитесь данными со своими пользователями .

Загрузка данных из командной строки¶

Если интересующие данные находятся в Интернете, вы также можете использовать код, чтобы загрузить их на JupyterHub. Есть несколько способов сделать это, поэтому мы рассмотрим самый простой из них с помощью инструмента unix wget .

Войдите в JupyterHub и откройте окно терминала.

Используйте wget для загрузки файла в текущий каталог в терминале.

Пример: загрузка набора данных gapminder.¶

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

Войдите в JupyterHub и откройте окно терминала.

Используйте wget для загрузки набора данных gapminder в текущий каталог терминала.

Это zip-файл, поэтому нам нужно загрузить инструмент unix под названием «unzip», чтобы распаковать его.

Наконец разархивируйте файл:

Подтвердите, что ваши данные были распакованы. Это может быть папка с именем data/ .

Чтобы узнать, как поделиться этими данными с новыми пользователями в JupyterHub, см. раздел Делитесь данными со своими пользователями .

Для начала вот простой шаблон, который можно использовать для импорта CSV-файла в Python:

Далее вы увидите пример с шагами, необходимыми для импорта файла.

Импорт данных в Python

Давайте начнем с простого примера, где у вас есть следующий список клиентов и некоторая дополнительная информация о продажах, хранящаяся в файле CSV (где имя файла — «Клиенты»):

td> < /tr> < /tr>
Имя человека Страна Продукт Цена покупки
Джон Япония Компьютер 800 долларов США
Билл США Планшет450 долларов США
Мария Канада Принтер 150 долларов США
Рита Бразилия Ноутбук 1200 долларов США
Джек< /td> Великобритания Монитор 300 долларов США
Рон Испания Ноутбук 1200 долларов США
Джефф Китай Ноутбук 1200 долларов США
Кэрри< /td> Италия Компьютер 800 долларов
Выйти замуж Перу Компьютер 800 долларов США
Бен Россия Принтер 150 долларов США

Шаги по импорту CSV-файла в Python с помощью Pandas

Шаг 1. Запишите путь к файлу

Во-первых, запишите полный путь к файлу CSV.

Например, предположим, что файл CSV хранится по следующему пути:

C:\Users\Ron\Desktop\ Клиенты .csv

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

  • Имя файла (выделено зеленым цветом). Вы можете выбрать другое имя файла, но убедитесь, что имя файла, указанное в коде, совпадает с реальным именем файла.
  • Расширение файла (выделено синим цветом). Расширение файла всегда должно быть «.csv» при импорте файлов CSV.

Шаг 2. Примените код Python

Введите/скопируйте следующий код в Python, внеся при этом необходимые изменения в свой путь.

Вот код для нашего примера (вы можете найти дополнительные комментарии в самом коде):

Шаг 3. Запустите код

Наконец, запустите код Python, и вы получите:

Дополнительный шаг: выберите подмножество столбцов

Что делать, если вы хотите выбрать подмножество столбцов из CSV-файла?

Например, что если вы хотите выбрать только столбцы Person Name и Country. Если это так, вы можете указать имена этих столбцов, как показано ниже:

Необходимо убедиться, что имена столбцов, указанные в коде, точно совпадают с именами столбцов в CSV-файле. В противном случае вы получите значения NaN.

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

Дополнительные ресурсы

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

После того как вы импортировали файл в Python, вы можете приступить к расчету некоторых статистических данных с помощью Pandas. Кроме того, вы можете легко экспортировать Pandas DataFrame в CSV.

Чтобы узнать больше об использовании Pandas для импорта CSV-файла, посетите документацию Pandas.

Как загрузить набор данных из CSV-файла с локального компьютера в Jupyter Notebook или Visual Studio для анализа данных с помощью python и pandas.

Для этого есть два основных способа

Вариант 1. Загрузите файл CSV с локального компьютера в блокнот jupyter и код Visual Studio с помощью python и pandas

Поместите набор данных в ту же папку, с которой вы работаете, и загрузите данные оттуда

Шаг 1. Скопируйте набор данных в ту же папку, что и блокнот.

Шаг 2. Импорт панд

Шаг 3. Используйте эту строку кода для загрузки данных, расположенных в той же папке, в которой вы сейчас работаете.

Шаг 4. Проверьте правильность загрузки данных с помощью data.head().

ЗАГРУЗИТЕ МОИ БЕСПЛАТНЫЕ РЕСУРСЫ ПО НАУЧНЫМ ДАННЫМ

  • БЕСПЛАТНЫЕ ресурсы по работе и карьере в сфере Data Science
  • БЕСПЛАТНЫЕ книги по науке о данных
  • БЕСПЛАТНЫЕ памятки по науке о данных
  • БЕСПЛАТНОЕ руководство по науке о данных, записные книжки, видео и подкасты Python.
  • Получите КОД для КАЖДОГО руководства по обработке данных на этом веб-сайте.
  • Получите записную книжку Python, используемую в этой записи блога

Вариант 2. Загрузите файл CSV с локального компьютера в блокнот jupyter и код Visual Studio с помощью python и pandas, используя локальный путь к файлу

Первый шаг — скопировать путь/местоположение CSV-файла набора данных, который вы хотите использовать для анализа данных

На Mac это делается немного по-другому, но применяются те же принципы. Вот как это делается в Windows.

Шаг 1. Импортируйте панд в свой блокнот.

Шаг 2. Найдите CSV-файл, который вы пытаетесь импортировать

Шаг 3. Выберите файл —> нажмите «Главная» —> нажмите «Копировать путь к файлу».

Шаг 4. Используйте путь к файлу для чтения CSV-файла. Если вы укажете необработанный путь к файлу, код вашей записной книжки или Visual Studio может вызвать ошибку. Итак, не забудьте поставить «r» перед путем к файлу, чтобы преобразовать путь к файлу, который вы скопировали, в обычную строку. Вот как вы это делаете.

Шаг 5. Убедитесь, что данные загружены правильно с помощью data2.head().

Давайте посмотрим правде в глаза: вам нужно вводить информацию в свои программы и из них не только с помощью клавиатуры и консоли. Обмен информацией через текстовые файлы — распространенный способ обмена информацией между программами. Одним из самых популярных форматов для обмена данными является формат CSV. Но как вы его используете?

Давайте проясним одну вещь: вам не нужно (и вы не будете) создавать собственный парсер CSV с нуля. Есть несколько вполне приемлемых библиотек, которые вы можете использовать. Библиотека Python csv подойдет для большинства случаев. Если ваша работа требует большого количества данных или числового анализа, в библиотеке pandas также есть возможности анализа CSV, которые справятся с остальными.

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

Итак, приступим!

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

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

Что такое CSV-файл?

Файл CSV (файл значений, разделенных запятыми) – это тип обычного текстового файла, в котором используется определенная структура для организации табличных данных. Поскольку это обычный текстовый файл, он может содержать только фактические текстовые данные, другими словами, печатные символы ASCII или Unicode.

Структура CSV-файла определяется его именем. Обычно файлы CSV используют запятую для разделения каждого конкретного значения данных. Вот как выглядит эта структура:

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

Вообще, символ-разделитель называется разделителем, и используется не только запятая. Другие популярные разделители включают символы табуляции (\t), двоеточия (:) и точки с запятой (;). Для правильного анализа CSV-файла нам необходимо знать, какой разделитель используется.

Откуда берутся CSV-файлы?

Файлы CSV обычно создаются программами, обрабатывающими большие объемы данных. Это удобный способ экспортировать данные из электронных таблиц и баз данных, а также импортировать или использовать их в других программах. Например, вы можете экспортировать результаты программы интеллектуального анализа данных в файл CSV, а затем импортировать его в электронную таблицу для анализа данных, создания графиков для презентации или подготовки отчета к публикации.

С файлами CSV очень легко работать программно. Любой язык, поддерживающий ввод текстовых файлов и работу со строками (например, Python), может напрямую работать с CSV-файлами.

Синтаксический анализ файлов CSV с помощью встроенной библиотеки CSV Python

Библиотека csv предоставляет функции как для чтения, так и для записи в файлы CSV. Разработанный для работы с CSV-файлами, сгенерированными в Excel, он легко адаптируется для работы с различными форматами CSV. Библиотека csv содержит объекты и другой код для чтения, записи и обработки данных из и в файлы CSV.

Чтение файлов CSV с помощью csv

Чтение из CSV-файла выполняется с помощью объекта чтения. Файл CSV открывается как текстовый файл с помощью встроенной в Python функции open(), которая возвращает объект файла. Затем он передается считывателю , который выполняет всю тяжелую работу.

Вот файл employee_birthday.txt:

Вот код для чтения:

В результате получается следующий результат:

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

Чтение файлов CSV в словарь с помощью csv

Вместо того, чтобы иметь дело со списком отдельных элементов String, вы также можете считывать данные CSV непосредственно в словарь (технически это упорядоченный словарь).

И снова наш входной файл employee_birthday.txt выглядит следующим образом:

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

Откуда взялись ключи словаря? Предполагается, что первая строка CSV-файла содержит ключи, используемые для построения словаря. Если в вашем файле CSV их нет, вы должны указать свои собственные ключи, установив необязательный параметр fieldnames в список, содержащий их.

Необязательные параметры чтения Python CSV

Объект чтения может обрабатывать различные стили CSV-файлов, указав дополнительные параметры, некоторые из которых показаны ниже:

разделитель указывает символ, используемый для разделения каждого поля. По умолчанию используется запятая ( ',' ).

quotechar указывает символ, используемый для окружения полей, содержащих символ-разделитель. По умолчанию используется двойная кавычка ( ' " ' ).

escapechar указывает символ, используемый для экранирования символа-разделителя, если кавычки не используются. По умолчанию escape-символ отсутствует.

Эти параметры заслуживают дополнительного пояснения. Предположим, вы работаете со следующим файлом employee_addresses.txt:

Этот CSV-файл содержит три поля: имя , адрес и дату присоединения , разделенные запятыми. Проблема в том, что данные для поля адреса также содержат запятую для обозначения почтового индекса.

Есть три разных способа справиться с этой ситуацией:

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

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

Эскейп-символы-разделители в данных
Эскейп-символы работают так же, как и в строках формата, сводя на нет интерпретацию экранируемого символа (в данном случае разделителя). Если используется escape-символ, его необходимо указать с помощью дополнительного параметра escapechar.

Запись файлов CSV с помощью csv

Вы также можете писать в CSV-файл, используя объект записи и метод .write_row():

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

  • Если для цитирования задано значение csv.QUOTE_MINIMAL , то .writerow() будет заключать в кавычки поля только в том случае, если они содержат разделитель или кавычку . Это случай по умолчанию.
  • Если для цитирования задано значение csv.QUOTE_ALL , то .writerow() будет цитировать все поля.
  • Если для цитирования задано значение csv.QUOTE_NONNUMERIC , то .writerow() будет заключать в кавычки все поля, содержащие текстовые данные, и преобразовывать все числовые поля в тип данных с плавающей запятой.
  • Если для цитирования задано значение csv.QUOTE_NONE , то .writerow() будет экранировать разделители, а не заключать их в кавычки. В этом случае вы также должны указать значение для дополнительного параметра escapechar.

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

Запись файла CSV из словаря с помощью csv

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

В отличие от DictReader, параметр fieldnames требуется при записи словаря. Это имеет смысл, если подумать: без списка имен полей DictWriter не может знать, какие ключи использовать для извлечения значений из ваших словарей. Он также использует ключи в именах полей для записи первой строки в виде имен столбцов.

Приведенный выше код создает следующий выходной файл:

Анализ CSV-файлов с помощью библиотеки pandas

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

pandas – это библиотека Python с открытым исходным кодом, которая предоставляет высокопроизводительные инструменты анализа данных и простые в использовании структуры данных. pandas доступен для всех установок Python, но он является ключевой частью дистрибутива Anaconda и очень хорошо работает в блокнотах Jupyter для обмена данными, кодом, результатами анализа, визуализациями и повествовательным текстом.

Установить pandas и его зависимости в Anaconda очень просто:

Как и использование pip / pipenv для других установок Python:

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

Чтение CSV-файлов с помощью pandas

Чтобы продемонстрировать некоторые возможности Pandas CSV, я создал немного более сложный для чтения файл, который называется hrdata.csv . Содержит данные о сотрудниках компании:

Чтение CSV в кадр данных pandas выполняется быстро и просто:

Вот и все: три строки кода, и только одна из них выполняет реальную работу. pandas.read_csv() открывает, анализирует и читает предоставленный CSV-файл и сохраняет данные в DataFrame. Печать DataFrame приводит к следующему выводу:

Вот несколько моментов, на которые стоит обратить внимание:

  • Во-первых, pandas распознали, что первая строка CSV-файла содержит имена столбцов, и использовали их автоматически. Я называю это Добротой.
  • Однако pandas также использует целочисленные индексы с отсчетом от нуля в DataFrame . Это потому, что мы не сказали ему, каким должен быть наш индекс.

Кроме того, если вы посмотрите на типы данных наших столбцов, вы увидите, что pandas правильно преобразовал оставшиеся столбцы Salary и Sick Days в числа, но столбец Hire Date по-прежнему является строкой. В этом легко убедиться в интерактивном режиме:

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

Теперь поле Name является нашим индексом DataFrame:

Далее исправим тип данных поля «Дата приема на работу». Вы можете заставить pandas читать данные как дату с помощью дополнительного параметра parse_dates, который определяется как список имен столбцов, которые следует рассматривать как даты:

Обратите внимание на разницу в выводе:

Теперь дата имеет правильный формат, что легко проверить в интерактивном режиме:

Если в ваших CSV-файлах нет названий столбцов в первой строке, вы можете использовать необязательный параметр names, чтобы предоставить список имен столбцов. Вы также можете использовать это, если хотите переопределить имена столбцов, указанные в первой строке. В этом случае вы также должны указать pandas.read_csv() игнорировать существующие имена столбцов, используя необязательный параметр header=0:

Обратите внимание, что, поскольку имена столбцов изменились, столбцы, указанные в необязательных параметрах index_col и parse_dates, также должны быть изменены. Теперь это приводит к следующему результату:

Запись CSV-файлов с помощью pandas

Конечно, если вы не можете снова получить свои данные из панд, это не принесет вам много пользы. Записать DataFrame в CSV-файл так же просто, как и прочитать его. Давайте запишем данные с новыми именами столбцов в новый CSV-файл:

Единственное различие между этим кодом и приведенным выше кодом чтения заключается в том, что вызов print(df) был заменен вызовом df.to_csv() , предоставляющим имя файла. Новый CSV-файл выглядит следующим образом:

Заключение

Если вы понимаете основы чтения CSV-файлов, вам никогда не придется столкнуться с проблемой импорта данных. С большинством задач чтения, обработки и записи CSV можно легко справиться с помощью базовой библиотеки csv Python. Если у вас есть много данных для чтения и обработки, библиотека pandas также предоставляет возможности быстрой и простой обработки CSV.

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

Есть ли другие способы анализа текстовых файлов? Конечно! Библиотеки, такие как ANTLR, PLY и PlyPlus, могут справляться с тяжелым синтаксическим анализом, и если простые манипуляции со строками не сработают, всегда есть регулярные выражения.

Но это темы для других статей…

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

Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Чтение и запись файлов CSV

Раз в несколько дней получайте короткие и интересные трюки с Python. Никакого спама никогда. Отписаться в любое время. Куратор: команда Real Python.

О Джоне Финчере

Джон преподавал Python и Java в двух средних школах штата Вашингтон. Ранее он был руководителем программы в Microsoft.

Читайте также: