Spec-Zone.ru › pandas 0.25

Инструменты ввода-вывода (текст, CSV, HDF5, …)

API ввода-вывода pandas — это набор функций верхнего уровня reader , к которым обращаются как к pandas.read_csv(), которые обычно возвращают объект pandas. Соответствующие writer функции — это методы объектов, к которым обращаются как к DataFrame.to_csv(). Ниже приведена таблица доступных readers и writers.

Тип формата Описание данных Читатель Записыватель
текст CSV read_csv to_csv
текст JSON read_json to_json
текст HTML read_html to_html
текст Буфер обмена read_clipboard to_clipboard
бинарный MS Excel read_excel to_excel
бинарный OpenDocument read_excel
бинарный Формат HDF5 read_hdf to_hdf
бинарный Формат Feather read_feather to_feather
бинарный Формат Parquet read_parquet to_parquet
бинарный Msgpack read_msgpack to_msgpack
бинарный Stata read_stata to_stata
бинарный SAS read_sas
бинарный Формат Python Pickle read_pickle to_pickle
SQL SQL read_sql to_sql
SQL Google Big Query read_gbq to_gbq

Здесь представлено сравнение производительности некоторых из этих методов ввода-вывода.

Примечание

Для примеров, использующих класс StringIO, убедитесь, что вы импортировали его в соответствии с вашей версией Python, т.е. from StringIO import StringIO для Python 2 и from io import StringIO для Python 3.

CSV и текстовые файлы

Функцией по умолчанию для чтения текстовых файлов (также называемых плоскими файлами) является read_csv(). См. кулинарную книгу для некоторых продвинутых стратегий.

Параметры разбора

read_csv() принимает следующие стандартные аргументы:

Основные

filepath_or_buffer : various
Путь к файлу (строка str, pathlib.Path, или py._path.local.LocalPath), URL (включая http, ftp и расположения S3) или любой объект с методом read() (например, открытый файл или StringIO).
sep : str, defaults to ',' for read_csv(), \t for read_table()
Разделитель, используемый. Если sep равно None, движок C не может автоматически определить разделитель, но движок Python может, что означает, что последний будет использован и автоматически определит разделитель с помощью встроенного инструмента анализа Python, csv.Sniffer. Кроме того, разделители, длина которых больше 1 символа и отличные от '\s+', будут интерпретированы как регулярные выражения и также заставят использовать движок Python. Обратите внимание, что разделители, являющиеся регулярными выражениями, склонны игнорировать цитируемые данные. Пример регулярного выражения: '\\r\\t'.
delimiter : str, default None
Альтернативное имя аргумента для sep.
delim_whitespace : boolean, default False

Указывает, будет ли пробел (например, ' ' или '\t') использоваться в качестве разделителя. Эквивалентно установлению sep='\s+'. Если этот параметр установлен в True, для параметра delimiter ничего не должно передаваться.

В версии 0.18.1: поддержка парсера Python.

Расположения и имена столбцов и индексов

header : int or list of ints, default 'infer'

Номер(а) строки(ок), используемых в качестве имен столбцов и начала данных. По умолчанию имена столбцов определяются автоматически: если имена не заданы, поведение идентично header=0, и имена столбцов выводятся из первой строки файла; если имена столбцов явно заданы, поведение идентично header=None. Явно задайте header=0 для возможности замены существующих имен.

Заголовок может быть списком целых чисел, которые указывают расположения строк для MultiIndex столбцов, например, [0,1,3]. Промежуточные строки, которые не указаны, будут пропущены (например, 2 в этом примере пропущены). Обратите внимание, что этот параметр игнорирует комментированные и пустые строки, если skip_blank_lines=True, поэтому header=0 обозначает первую строку данных, а не первую строку файла.

names : array-like, default None
Список имен столбцов для использования. Если файл не содержит строки заголовка, вы должны явно указать header=None. Повторения в этом списке запрещены.
index_col : int, str, sequence of int / str, or False, default None

Столбец(ы) для использования в качестве меток строк DataFrame, заданные либо строковым именем, либо индексом столбца. Если задана последовательность int/str, используется MultiIndex.

Примечание: index_col=False может быть использован для того, чтобы заставить pandas не использовать первый столбец в качестве индекса, например, когда у вас есть повреждённый файл с разделителями в конце каждой строки.

usecols : list-like or callable, default None

Возвращает подмножество столбцов. Если список, все элементы должны быть либо позиционными (т. е. целочисленными индексами в столбцах документа), либо строками, соответствующими именам столбцов, предоставленными пользователем в names или полученными из строки(ок) заголовка документа. Например, допустимым списком-аргументом для параметра usecols был бы [0, 1, 2] или ['foo', 'bar', 'baz']. Порядок элементов игнорируется, поэтому usecols=[0, 1] эквивалентно [1, 0]. Чтобы создать DataFrame из data с сохранением порядка элементов, используйте pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']] для столбцов в порядке ['foo', 'bar'] или pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']] для порядка ['bar', 'foo']. Если функция вызывается, функция вызова будет оцениваться по отношению к именам столбцов, возвращая имена, где функция вызова возвращает True:

In [1]: from io import StringIO, BytesIO

In [2]: data = ('col1,col2,col3\n'
   ...:         'a,b,1\n'
   ...:         'a,b,2\n'
   ...:         'c,d,3')
   ...: 

In [3]: pd.read_csv(StringIO(data))
Out[3]: 
  col1 col2  col3
0    a    b     1
1    a    b     2
2    c    d     3

In [4]: pd.read_csv(StringIO(data), usecols=lambda x: x.upper() in ['COL1', 'COL3'])

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/user_guide/io.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API