Spec-Zone.ru › pandas 2

pandas.read_sql

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

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

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

Параметры:
sql:str или SQLAlchemy Selectable (объект select или text)

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

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

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

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

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

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

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

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

Список параметров для передачи методу execute. Синтаксис передачи параметров зависит от драйвера базы данных. Проверьте документацию драйвера вашей базы данных, чтобы узнать, какой из пяти синтаксических стилей, описанных в PEP 249, поддерживается. Например, для 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:int, по умолчанию None

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

dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, по умолчанию ‘numpy_nullable’

Обработка типов данных, применяемая к результирующему DataFrame (пока экспериментальная функция). Поведение следующее:

  • "numpy_nullable": возвращает DataFrame с поддержкой nullable типов данных (по умолчанию).

  • "pyarrow": возвращает ArrowDtype DataFrame с поддержкой nullable типов данных.

Новая в версии 2.0.

dtype:Имя типа или словарь столбцов

Тип данных для данных или столбцов. Например, np.float64 или {‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}. Аргумент игнорируется, если вместо запроса передаётся таблица.

Новая в версии 2.0.0.

Возвращает:
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(name='test_data', con=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 Аргумент parse_dates вызывает pd.to_datetime для предоставленных столбцов. Пользовательские значения аргументов для применения pd.to_datetime к столбцу указываются в формате словаря:

>>> 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

Новая в версии 2.2.0: pandas теперь поддерживает чтение через драйверы ADBC

>>> from adbc_driver_postgresql import dbapi  
>>> with dbapi.connect('postgres:///db_name') as conn:  
...     pd.read_sql('SELECT int_column FROM test_data', conn)
   int_column
0           0
1           1

© 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/2.2.2/reference/api/pandas.read_sql.html

Spec-Zone.ru

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