Найти в Дзене

Pandas. Загрузка данных из CSV.

Для загрузки данных из учетных систем часто используется формат CSV. CSV довольно распространенный формат для импорта/экспорта данных между различными приложениями Формат CSV (comma-separated values — «значения, разделённые запятыми») широко используется для импорта и экспорта данных между различными приложениями. Это текстовый формат, который позволяет хранить табличные данные: каждая строка таблицы соответствует строке текста, а поля разделяются специальным символом-разделителем, чаще всего запятой или точкой с запятой. Файл CSV выглядит вот так. В первой строке файла обычно указываются заголовки столбцов. За счет того, что данные хранятся в текстовом формате, это не требует большого объема памяти и ресурсов для открытия файла. Поэтому в формате CSV передаются файлы с большим объемом данных. Еще одним плюсом CSV файлов является простота формата и легкость редактирования данных, чтобы открыть такой файл не нужно иметь специальных приложений, достаточно простого текстового редактора и
Оглавление

Для загрузки данных из учетных систем часто используется формат CSV. CSV довольно распространенный формат для импорта/экспорта данных между различными приложениями

Что такое CSV?

Формат CSV (comma-separated values — «значения, разделённые запятыми») широко используется для импорта и экспорта данных между различными приложениями. Это текстовый формат, который позволяет хранить табличные данные: каждая строка таблицы соответствует строке текста, а поля разделяются специальным символом-разделителем, чаще всего запятой или точкой с запятой.

Файл CSV выглядит вот так.

Пример текстового файла csv
Пример текстового файла csv

В первой строке файла обычно указываются заголовки столбцов.

За счет того, что данные хранятся в текстовом формате, это не требует большого объема памяти и ресурсов для открытия файла. Поэтому в формате CSV передаются файлы с большим объемом данных.

Еще одним плюсом CSV файлов является простота формата и легкость редактирования данных, чтобы открыть такой файл не нужно иметь специальных приложений, достаточно простого текстового редактора или программы для открытия Excel файлов. Excel легко открывает и читает CSV. Также любую таблицу в Excel можно сохранить в CSV файл. Для этого нужно выбрать опцию “Сохранить как” и выбрать формат сохранения «.csv».

Однако нужно учитывать, что эксель достаточно вольно обращается с данными, сохраненными в CSV. Числовые данные он может превратить в дату и наоборот, из номера телефона может сделать число в экспоненциальной форме и выкинуть несколько цифр. Горе значениям, где в начале стоят нули, они будут просто удалены. В общем Excel и CSV это то еще мучение. Никогда не знаешь, чего ожидать.

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

Pandas дает возможность загружать данные из CSV-файла применяя распознавание формата этих данных. Так если в столбце записаны числовые значений, то Pandas автоматически присвоит им формат int64 или float64. Если в столбце будут текстовые данные или формат данных определить не удастся, то данные в столбце будут иметь формат object.

Загрузка csv файла.

Итак, как работает загрузка данных из Excel

Сначала импортируем Pandas

import pandas as pd

Загружаем данные из CSV файла

# Загрузка файла

demo_df = pd.read_csv('Source/Численность занятых 2023.csv', sep=';', decimal='.', header=0, dtype={'№ п/п': 'int', 'Годы': 'object', '2017': 'float64',
'2018': 'float64', '2019': 'float64', '2020': 'float64',
'2021': 'float64', '2022': 'object',})
Загрузка csv
Загрузка csv

В этом примере производится загрузка файла “Численность занятых 2023.csv” находящегося в папке “Source”. Загруженный CSV файл, создает датафрейм с названием demo_df.

read_csv()

Метод read_csv() производит загрузку, парсинг и распознавание CSV файла. Обязательным аргументом этого метода является путь к файлу и его название. Путь к файлу Source/Численность занятых 2023.csv' указывается в кавычках (кавычки могут быть одинарные или двойные, это неважно).

Можно указать как абсолютный путь к файлу, так и относительный. Относительный путь к файлу прописывается, как путь от расположения самого ноутбука (скрипта). В данном примере в папке, в которой сохранен ноутбук находится папка “Source”, а уже в ней файл “Численность занятых 2023.csv”. В новых версиях Pandas путь можно прописывать одинарным слэшем, однако в старых версиях из-за особенностей Python необходимо было ставить двойной слэш //. Так что, если у вас по какой-то причине не находит файл, а вы видите, что все написано правильно, попробуйте применить двойной слэш. В линукс-системах для прописывания пути используется обратный слэш.

В Jupyter lab, для легкого указания пути есть удобная опция в левом меню выбираете панель отображения файлов, в верхнем углу находится символ папки. Нажимаете на символ папки и у вас открывается файловый браузер. Выбираете нужный для загрузки файл, щелкаете на нем правой кнопкой и выбираете опцию “Copy Path”. Относительный путь от вашей домашней папки скопирован в буфер обмена. Вставляете его, удаляете до нужного уровня и все, ваш путь к файлу готов.

Если загрузка файла производится из сети интернет вместо пути можно указать URL адрес содержащий необходимый файл. Можно указать как HTTP, так и FTP адрес.

Дополнительные параметры

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

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

sep - Разделитель колонок (от англ. separate, «отделять, разделять»). Параметр указывает каким именно разделителем разделены значения в файле. Чтобы определить какое значение разделителя нужно указать, чтобы файл загрузился, и таблица сформировалась правильно, нужно открыть файл в текстовом редакторе и посмотреть какой именно разделитель стоит между значениями. Скопируйте его и вставьте в параметр. Он должен выглядеть вот так sep=';', значение разделителя указывается в кавычках, это строковый символ.

header - заголовок. Указывается номер строки, содержащий заголовки столбцов обычно это номер - 0.

names - Список имен столбцов. Если есть необходимость сразу переименовать столбцы, к примеру сделать латинские названия для кириллических названий столбцов. С этим параметром передается список Python [], в списке по порядку должны быть указаны новые имена столбцов. names = [‘Col1’, ‘Col2’, ‘Col3’]. Дублирующиеся наименования не допускаются, помним, что имена столбцов — это тоже индекс.

dtype - указание типа данных, которое должно быть в том или ином столбце. Если данный параметр не указан Pandas автоматически присвоит данным тип “object”. Типы данных здесь используются принятые либо в Pandas, либо в Python: int64 (int) - целочисленные, float64 (float) - числа с плавающей точкой, object (str) - текстовые данные, bool - булевый тип данных. В нашем примере мы применяем разные параметры для разных типов данных. Параметр принимает на вход словарь Python {}, в котором в качестве ключей словаря указываются наименования столбцов, а в качестве значений нужный тип данных.

Вызвав метод info() можно проверить правильно ли назначен тип данных

Описание типов данных
Описание типов данных

в нашем примере

dtype={'№ п/п': 'int', 'Годы': 'object', '2017': 'float64',
'2018': 'float64', '2019': 'float64', '2020': 'float64',
'2021': 'float64', '2022': 'object',}

Данные назначены точно также, как определено в словаре параметра dtype.

skiprows - какое количество строк с начала текста нужно пропустить. Посчитайте какое количество строк вам нужно проскочить и укажите это количество в параметре skiprows.

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

skipfooter - этот параметр показывает, какое количество строк в конце файла нужно пропустить и не читать. skipfooter = 2, последние 2 строки текста в файле, не будут загружены.

skip_blank_lines - Пропуск пустых строк. Если значение skip_blank_lines=True, то пустые строки будут просто пропускаться. Если skip_blank_lines=False пустые строки будут читаться, а вместо отсутствующих значений будет стоять NaN.

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

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

Смотрите также:

Pandas. Загрузка данных из Excel.