Spec-Zone.ru › pandas 1

pandas.read_sql

pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)[source]

Чтение SQL запроса или таблицы базы данных в DataFrame.

Эта функция является удобной обёрткой вокруг read_sql_table и read_sql_query (для обратной совместимости). Она будет делегировать вызов конкретной функции в зависимости от предоставленного входного значения. SQL запрос будет перенаправлен на read_sql_query, а имя таблицы базы данных — на read_sql_table. Обратите внимание, что делегированная функция может иметь более специфические замечания о её функциональности, не указанные здесь.

Parameters
sql:str или SQLAlchemy Selectable (объект select или text)

SQL запрос для выполнения или имя таблицы.

con:SQLAlchemy connectable, str или соединение sqlite3

Использование SQLAlchemy позволяет использовать любую БД, поддерживаемую этой библиотекой. Если объект DBAPI2, поддерживается только sqlite3. Пользователь отвечает за уничтожение движка и закрытие соединения для SQLAlchemy connectable; соединения типа str закрываются автоматически. См. здесь.

index_col:str или список str, необязательно, по умолчанию: None

Столбец(ы) для установки в качестве индекса (MultiIndex).

coerce_float:bool, по умолчанию True

Попытка преобразовать значения нестроковых, нечисловых объектов (например, decimal.Decimal) в числа с плавающей точкой, полезно для наборов результатов SQL.

params:список, кортеж или словарь, необязательно, по умолчанию: None

Список параметров для передачи методу execute. Синтаксис передачи параметров зависит от драйвера базы данных. Обратитесь к документации драйвера вашей базы данных, чтобы узнать, какой из пяти стилей синтаксиса, описанных в PEP 249’s paramstyle, поддерживается. Например, для psycopg2 используется %(name)s, поэтому используйте params={‘name’ : ‘value’}.

parse_dates:список или словарь, по умолчанию: None
  • Список имён столбцов для преобразования в даты.

  • Словарь {column_name: format string}, где строка формата совместима с strftime в случае разбора строковых времен или является одним из (D, s, ns, ms, us) в случае разбора целочисленных временных меток.

  • Словарь {column_name: arg dict}, где словарь arg соответствует ключевым аргументам pandas.to_datetime(). Особенно полезно при работе с базами данных без встроенной поддержки Datetime, таких как SQLite.

columns:список, по умолчанию: None

Список имён столбцов для выбора из SQL таблицы (используется только при чтении таблицы).

chunksize:целое число, по умолчанию None

Если задано, возвращает итератор, где chunksize — количество строк в каждом фрагменте.

Returns
DataFrame или Iterator[DataFrame]

См. также

read_sql_table

Чтение SQL таблицы базы данных в DataFrame.

read_sql_query

Чтение SQL запроса в DataFrame.

Примеры

Чтение данных из SQL с помощью SQL запроса или имени SQL таблицы. При использовании базы данных SQLite принимаются только SQL запросы, предоставление только имени SQL таблицы приведёт к ошибке.

>>> from sqlite3 import connect
>>> conn = connect(':memory:')
>>> df = pd.DataFrame(data=[[0, '10/11/12'], [1, '12/11/10']],
...                   columns=['int_column', 'date_column'])
>>> df.to_sql('test_data', conn)
2
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', conn)
   int_column date_column
0           0    10/11/12
1           1    12/11/10
>>> pd.read_sql('test_data', 'postgres:///db_name')  

Применение преобразования дат к столбцам с помощью аргумента parse_dates

>>> pd.read_sql('SELECT int_column, date_column FROM test_data',
...             conn,
...             parse_dates=["date_column"])
   int_column date_column
0           0  2012-10-11
1           1  2010-12-11

Аргумент parse_dates вызывает pd.to_datetime для предоставленных столбцов. Пользовательские значения аргументов для применения pd.to_datetime к столбцу задаются в формате словаря: 1. Игнорирование ошибок при разборе значений столбца “date_column”

>>> pd.read_sql('SELECT int_column, date_column FROM test_data',
...             conn,
...             parse_dates={"date_column": {"errors": "ignore"}})
   int_column date_column
0           0  2012-10-11
1           1  2010-12-11
  1. Применение порядка разбора дат dayfirst к значениям столбца “date_column”

>>> pd.read_sql('SELECT int_column, date_column FROM test_data',
...             conn,
...             parse_dates={"date_column": {"dayfirst": True}})
   int_column date_column
0           0  2012-11-10
1           1  2010-11-12
  1. Применение пользовательского формата при разборе дат значений столбца “date_column”

>>> pd.read_sql('SELECT int_column, date_column FROM test_data',
...             conn,
...             parse_dates={"date_column": {"format": "%d/%m/%y"}})
   int_column date_column
0           0  2012-11-10
1           1  2010-11-12

© 2008–2022, 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/1.5.0/reference/api/pandas.read_sql.html

Spec-Zone.ru

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